VB .NET JSON 反序列化

蒂亚戈

我在 JSON 反序列化方面遇到了问题,希望您能帮助我。我有一个包含以下信息的 JSON:

{  
"object":"list",
"more":false,
"data":[  
  {  
     "object":"number",
     "id":"1",
     "code":"1",
     "name":"One",
  },
  {  
     "object":"number",
     "id":"2",
     "code":"2",
     "name":"Two",
  }
  ...

所以我创建了一个简单的应用程序,以便我可以使用该信息:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim uriString As String = "API URL"
    Dim uri As New Uri(uriString)

    'Make Request
    Dim Request As HttpWebRequest = HttpWebRequest.Create(uri)
    Request.Method = "GET"

    'Get Response
    Dim Response As HttpWebResponse = Request.GetResponse()

    'Read Response
    Dim Read = New StreamReader(Response.GetResponseStream())
    Dim Raw As String = Read.ReadToEnd()

    'Convert response

    Dim dict As Object = New JavaScriptSerializer().Deserialize(Of List(Of Object))(Raw)

    For Each item In dict
        MsgBox(item)
        MsgBox(item("code"))
        TextBox1.Text += item("code").ToString + " - " + item("name").ToString + vbNewLine
    Next
End Sub

似乎我得到了响应,因为 Read 我得到了 JSON,但在那之后,我无法得到该 JSON 中列出的信息。我做错了什么?

粗鲁

您没有正确反序列化。你的字典是空的。

这将按预期工作。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim uriString As String = "API URL"
    Dim Request As HttpWebRequest = WebRequest.Create(New Uri(uriString))
    Dim JSON_Response As String = New StreamReader(Request.GetResponse().GetResponseStream()).ReadToEnd()

    Dim JSON_Obj1 As Object = New JavaScriptSerializer().DeserializeObject(JSON_Response)
    Dim Test1 as String = JSON_Obj1("data")(0)("code")

    For Each item In JSON_Obj1("data")
        Debug.Print(item("code"))
    Next
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章