我正在使用json.net库,我有这个想要反序列化的json文件:
{
"jsonVersion": 3,
"levelMasteryScore3": 70000,
"boosts": {
"preBoostSupergems": {
"enabled": 1,
"jsonVersion": 1
},
"preBoostThreeMoves": {
"enabled": 1,
"jsonVersion": 1
},
"preBoostColorSplash": {
"enabled": 1,
"jsonVersion": 1,
"excludedColors": [
"G"
]
},
"jsonVersion": 1
},
"name": "0017",
"moveLimitObjective": {
"moveLimit": 19,
"jsonVersion": 1
},
"gemSpawnChance": {
"R": 20,
"B": 20,
"G": 0,
"P": 20,
"Y": 20
},
"levelMasteryScore1": 20000,
"board": {
"tiles": [
[
"X",
"X",
"X",
"X",
"X",
"X",
"X"
],
[
"X",
"X",
"X",
"X",
"X",
"X",
"X"
],
[
"X",
"X",
"X",
"X",
"X",
"X",
"X"
],
[
"A",
"A",
"A",
"A",
"A",
"A",
"A"
],
[
"A",
"E",
"A",
"E",
"A",
"E",
"A"
],
[
"A",
"J1",
"A",
"J1",
"A",
"J1",
"A"
],
[
"A",
"A",
"A",
"A",
"A",
"A",
"A"
],
[
"J1",
"J1",
"J1",
"E",
"J1",
"J1",
"J1"
],
[
"J1",
"J1",
"J1",
"J1",
"J1",
"J1",
"J1"
]
],
"visibleSize": {
"width": 7,
"jsonVersion": 1,
"height": 9
},
"pieces": [
[
"@",
"@",
"@",
"@",
"@",
"@",
"@"
],
[
"@",
"@",
"@",
"@",
"@",
"@",
"@"
],
[
"@",
"@",
"@",
"@",
"@",
"@",
"@"
],
[
"D",
"D",
"D",
"D",
"D",
"D",
"D"
],
[
"D",
" ",
"D",
" ",
"D",
" ",
"D"
],
[
"D",
" ",
"D",
" ",
"D",
" ",
"D"
],
[
"D",
"D",
"D",
"D",
"D",
"D",
"D"
],
[
" ",
" ",
" ",
" ",
" ",
" ",
" "
],
[
" ",
" ",
" ",
" ",
" ",
" ",
" "
]
],
"jsonVersion": 2
},
"levelMasteryScore2": 50000,
"jellyObjective": {
"jellyToRemove": 16,
"jsonVersion": 1
}
}
对我来说这看起来很复杂,我想要检索以下元素:
moveLimitObjective": {
"moveLimit": 19,
"jsonVersion": 1
"gemSpawnChance": {
"R": 20,
"B": 20,
"G": 0,
"P": 20,
"Y": 20
}
' 主板'阻止使用' 磁贴'和' 件'块
"jellyObjective": {
"jellyToRemove": 16,
"jsonVersion": 1
}
我在网上看到了很多例子,但我无法弄明白。我甚至不知道从哪里开始。
提前感谢您提供任何帮助
答案 0 :(得分:1)
使用json2csharp将json数据转换为csharp类,然后使用another converter将生成的代码转换为vb.net。
在vb.net中创建了一个类,您可以使用JSON.NET的反序列化对象方法来获取所需的属性,然后获取所需的属性。例如:
假设您已经设置了为json对象建模的.NET类。我会调用顶级对象Game
。
Dim json As String
Dim game As Game = JsonConvert.DeserializeObject(Of Game)(json)
MessageBox.Show(game.GemSpawnChance)
接近这一点应该有用。
这个例子提供了一些方向,但做更多的研究将会有所帮助。也许从Newtonsoft.Json page开始。