我正在尝试为内部应用反序列化以下JSON。
{
"resources": [
"output.ogg",
"output.m4a",
"output.mp3",
"output.ac3"
],
"spritemap": {
"click": {
"start": 0,
"end": 0.23034013605442177,
"loop": false
},
"CoinCMixed": {
"start": 2,
"end": 2.222448979591837,
"loop": false
},
"CoinDropMixed": {
"start": 4,
"end": 4.312222222222222,
"loop": false
}
}
}
我需要获取名称(例如“单击”)和start
和end
值。
问题是,名称并不总是相同的。它是独一无二的。所以,我猜我需要做的是循环遍历spritemap
?但是我不知道该怎么做。
因此,例如:
那会让我做
msgbox("Your song name is " + Name + "The length is " + start + "The end is" + end)
您可以使用来处理各种名称Dictionary
。像这样定义您的类:
Class DataObject
Public Property resources As List(Of String)
Public Property spritemap As Dictionary(Of String, Sound)
End Class
Class Sound
Public Property start As Double
Public Property [end] As Double
Public Property [loop] As Boolean
End Class
然后,您可以像这样反序列化JSON:
Dim data As DataObject = JsonConvert.DeserializeObject(Of DataObject)(json)
然后,您可以像这样循环遍历字典以获取所需的数据:
For Each kvp As KeyValuePair(Of String, Sound) In data.spritemap
Console.WriteLine("Name: " + kvp.Key)
Console.WriteLine("Start: " + kvp.Value.start.ToString())
Console.WriteLine("End: " + kvp.Value.end.ToString())
Console.WriteLine()
Next
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句