【问题标题】:Get items in response object via javaScriptSerializer.Deserialize通过 javaScriptSerializer.Deserialize 获取响应对象中的项目
【发布时间】:2014-11-21 20:54:06
【问题描述】:

我的页面上有一个 Dropbox webhook。我需要在响应中获取用户列表,稍后我将在单独的线程上处理这些用户列表。我可以在数据变量中看到用户,但我不知道如何提取对象中的用户列表。基本上我想填充一组用户,我可以循环并进行一些其他处理。希望这是有道理的。

这是对象的样子:

{
"delta": {
    "users": [
        12345678,
        23456789,
        ...
    ]
}

}

这是我尝试过的代码,就像我说的,我可以看到数据中的字符串:

Dim strJSON = [String].Empty
            Context.Request.InputStream.Position = 0
            Using inputStream = New StreamReader(Context.Request.InputStream)
                strJSON = inputStream.ReadToEnd()
            End Using
            Dim javaScriptSerializer As New JavaScriptSerializer()
            Dim data As Object = javaScriptSerializer.Deserialize(strJSON, GetType(Object))

我想要一组用户。希望你能帮忙。

【问题讨论】:

    标签: asp.net vb.net httpwebrequest javascriptserializer


    【解决方案1】:

    只需为您的响应数据创建一些类:

    Class Data
        Public Property delta As Delta
    End Class
    
    Class Delta
        ' If you would rather have a list you can declare this As List(Of Integer) instead
        Public Property users As Integer()
    End Class
    

    然后您可以直接反序列化到类中:

    Dim data As Data = javaScriptSerializer.Deserialize(Of Data)(strJSON)
    

    从那里您可以轻松地处理您的数据:

    For Each user As Integer In data.delta.users
        Console.WriteLine(user)
    Next
    

    【讨论】:

    • 谢谢布赖恩!像魅力一样工作!
    • 没问题;很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2017-05-20
    • 2015-02-12
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    相关资源
    最近更新 更多