Как разобрать внука Джсона в VB.NET Newtonsoft

У меня возникли проблемы с отображением tongits, Блэк Джек, 21 в списке

Я могу показывать только любимую игру, игру в списке

а также как подсчитать количество вопросов в анкетах?


Данные Json

 {
   "id": 1,
   "status": "DRAFT",
   "title": "GAMES",
   "author": "foo",

   "questionnaires": [
          {
           "id": 1,
           "question": "Favorite game",
           "answers": [
                        "tongits",
                        "black jack",
                          "21"
                      ]
           },
         {
          "id": 2,
          "question": "game",
          "answers": [
                       "basketball",
                       "volleyball"
                     ]
          }
      ]
  }

Это мой код в VB

Dim o As JObject = JObject.Parse(json)

Dim results As List(Of JToken) = o.Children().ToList

For Each item As JProperty In results

item.CreateReader()
Select Case item.Name
    Case "questionnaires"
        Dim question As String
        For Each subitem As JObject In item.Values
            listbox1.item.add(question)
        Next
End Select
Next

с удовольствием бы поблагодарил кого поможет

1 ответ

У вас есть опечатка "Анкета", так как ее нет в вашем JSON ("Анкеты" есть). Также вам не нужно искать его. Ниже приведен псевдокод Javascript, на который вы можете ссылаться. Должно быть очень похоже на VB.Net.

var jsonData = '{"id": 1,   "status": "DRAFT",  "title": "GAMES",   "author": "foo", "questionnaires": [          {          "id": 1,      "question": "Favorite game",           "answers": [                        "tongits",                        "black jack",                          "21"                      ]           },         {          "id": 2,          "question": "game",          "answers": [                       "basketball",                       "volleyball"                     ]          }      ]  }';    
var jsonObj = JSON.parse(jsonData);
for (var question in jsonObj.questionnaires)
{
  console.log('ID:' + jsonObj.questionnaires[question].id);
  console.log('Question:' + jsonObj.questionnaires[question].question);
  for (var answerToQuestion in jsonObj.questionnaires[question].answers)
  {
    console.log('--->Answer:' + jsonObj.questionnaires[question].answers[answerToQuestion]);
  }
}

Результаты:

ID:1
Question:Favorite game
--->Answer:tongits
--->Answer:black jack
--->Answer:21
ID:2
Question:game
--->Answer:basketball
--->Answer:volleyball
Другие вопросы по тегам