Как десериализовать этот json файл в vb.net с помощью json.net?

Я использую библиотеку 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 }

Я видел много примеров в Интернете, но я не могу понять это. Я даже не знаю, с чего начать.

Заранее благодарю за любую помощь

1 ответ

Используйте json2csharp для преобразования данных json в классы csharp, а затем конвертируйте полученный код в vb.net с помощью другого конвертера.

После того, как у вас есть классы в vb.net, которые моделируют данные, которые вы пытаетесь получить из JSON, вы можете использовать метод десериализации объектов JSON.NET и захватить нужные вам свойства. Например:

Предполагая, что вы создали свои классы.NET, которые моделируют объекты json. Я буду называть Game верхнего уровня.

Dim json As String
Dim game As Game = JsonConvert.DeserializeObject(Of Game)(json)
MessageBox.Show(game.GemSpawnChance)

Что-то близко к этому должно работать.

Этот пример дает некоторое направление, но делать больше исследований будет полезно. Возможно, начните с страницы Newtonsoft.Json.

licensed under cc by-sa 3.0 with attribution.