开发者

Deserialize json array in vb.net

I have a json array which is formatted as follows:

[
  {
    "property":96,
    "listofstuff":[
      {
        "anotherproperty":"some text here",
        "yetanother":"text goes here too"
      }
    ],
    "lastproperty":3001
  },
 <开发者_开发技巧;rest of array>
]

How can I deserialize this in such a way that I can have a list of objects indexed by property? Meaning, I want to be able to access the data like this: MyList(96).lastproperty or MyList(96).listofstuff.yetanother and have it return the proper datatype too? Is that even possible in vb.net?


I agree that the JSON library you need to use is Json.NET found at http://json.codeplex.com/

So, given your example JSON array, I made the following classes that can be used for serializing and deserializing:

Public Class Item
    Public Property [property]() As Integer
    Public Property listofstuff() As Stuff()
    Public Property lastproperty() As Integer
End Class

Public Class Stuff
    Public Property anotherproperty() As String
    Public Property yetanother() As String
End Class

Then all you need is the following code to be able to access the data in roughly the way you wanted to:

Dim Items = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Item())(json)
Dim MyList = Items.ToDictionary(Function(x) x.property)
Dim Stuff = MyList(96).listofstuff(0)

If your intent with the listofstuff property array was to store any string pair then use this definition for Item (and you also won't need the Stuff class):

Public Class Item
    Public Property [property]() As Integer
    Public Property listofstuff() As Dictionary(Of String, String)()
    Public Property lastproperty() As Integer
End Class


You need a JSON library for .net: http://json.codeplex.com/

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜