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/
精彩评论