通过javaScriptSerializer.Deserialize获取响应对象中的项目

时间:2014-11-21 20:54:06

标签: asp.net vb.net httpwebrequest javascriptserializer

我有一个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))

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

1 个答案:

答案 0 :(得分: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