VB.net 2005 Преобразование объекта JSON в список массивов - PullRequest
0 голосов
/ 11 октября 2018

У меня проблема с получением "kode" из "списка" в виде массива из этого объекта.

{
           "metaData":{
              "code":"200",
              "message":"Sukses"
           },
           "response":{
              "list":[
                 {
                    "kode":"31486",
                    "nama":"Satro Jadhit, dr"
                 },
                 {
                    "kode":"31492",
                    "nama":"Satroni Lawa, dr"
                 }
              ]
           }
        }

Я могу получить что угодно, кроме массива из JSON.Я пытался использовать это решение [ Как читать HTTP-ответ JSON с использованием VB

и других решений, но мой VB не имеет какой-либо функции от Newtonsoft JSON.Я использую Visual Studio 2005, .net Framework 2.0

Итак, как я могу получить его в качестве массива.

Edit

это то, что я 'я попробовал, и я могу получить значение из «списка» (я использую другой код, поэтому это значение отличается)

Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq

Dim kodeDpjp as string

Dim json As String = responseFromServer
Dim serObj As Newtonsoft.Json.Linq.JObject = 
         Newtonsoft.Json.Linq.JObject.Parse(json)
Dim token As Newtonsoft.Json.Linq.JToken = serObj.SelectToken("response") 
         ("list")
If (token.GetType() Is GetType(Newtonsoft.Json.Linq.JArray)) Then
    Console.WriteLine(token)
End If

и это результат

[
  {
    "kode": "8784",
    "nama": "drg.MELANI SARI TANJUNG"
  },
  {
    "kode": "8848",
    "nama": "drg.ARIEF KURNIAWAN"
  },
  {
    "kode": "8873",
    "nama": "drg.SRI ARIANI SUGIARTI"
  }
]

я просто хочу "kode" для моего массива в выпадающем списке

Спасибо

1 Ответ

0 голосов
/ 12 октября 2018

Поскольку вы знаете, что результатом serObj.SelectToken("response")("list") является JArray, вы можете разыграть его, используя CType, а затем использовать цикл For Each для перебора элементов.Каждый элемент здесь - JObject, и вы можете использовать метод индексатора для получения значений свойств.Затем вы можете снова использовать CType для преобразования этих значений в строки.

Здесь это в коде:

' Parse the JSON to a JObject
Dim serObj As JObject = JObject.Parse(json)

' Retrieve the list and cast it to a JArray
Dim list As JArray = CType(serObj.SelectToken("response")("list"), JArray)

' Loop over the items in the array (each is a JObject)
For Each item As JObject In list

    ' Get the "kode" property from the JObject and convert it to a string
    Dim kode As String = CType(item("kode"), String)

    ' Get the "nama" property from the JObject and convert it to a string
    Dim nama As String = CType(item("nama"), String)

    ' You can add kode and/or nama to your ComboBox here
Next

Fiddle: https://dotnetfiddle.net/lkrWa4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...