Member 10285969 Ответов: 1

Краткая справка по синтаксическому анализу json


Великие программисты, я с трудом пытаюсь разобрать строку Json, чтобы извлечь из нее какое-то значение. мне это действительно нужно, потому что я хочу включить его в свое приложение.
Пожалуйста, помогите мне.. из-за этого я просто новичок в синтаксическом анализе JSON..
Я хочу извлечь значение "address" , "txes_total", "confirmed".
Все, что я пробовал, не работало, даже копирование кода с youtube и через поиск google не давало никакого результата.
Вот код JSON:

{
  "data": {
    "address": "AnyRandomString", 
    "balance": {
      "confirmed": 960, 
      "unconfirmed": 960
    }, 
    "time_last_tx": 188.473, 
    "txes_total": 2
  }


}


Что я уже пробовал:

Dim str As String = reader.ReadToEnd()
Dim dict As Object = New JavaScriptSerializer().Deserialize(Of List(Of Object))(str)
Dim BITCONIadress As String = Nothing
Dim transactmBiTCOIN As Integer = Nothing
Dim balanceBBITCOIn As String = Nothing
For Each itm As Object In dict
    BITCONIadress = dict("address").ToString()
    transactmBiTCOIN = CInt(dict("txes_total"))
    balanceBBITCOIn = dict("confirmed").ToString()
Next
Dim kConvert = Convert.ToDecimal(balanceBBITCOIn) / 100000000
Threading.Thread.Sleep(3)
lll += 1
Me.Invoke(New MethodInvoker(Sub() Me.label7.Text = lll & "/" & countii))
Dim lstv As New ListViewItem
    lstv.Text = BITCONIadress
    lstv.SubItems.Add(ListBox2.Items.Item(lstcnt))
    lstv.SubItems.Add(transactmBiTCOIN)
    listView1.Items.Add(lstv)
    Me.Invoke(New MethodInvoker(Sub() Me.label8.Text = listView1.Items.Count))
    ListBox1.Items.RemoveAt(lstcnt)
    ListBox2.Items.RemoveAt(lstcnt)
    lstcnt += 1

1 Ответов

Рейтинг:
2

MadMyche

Вместо того чтобы вручную анализировать это; почему бы вам не посмотреть на то, что у вас есть, а затем использовать свойства, чтобы получить то, что вам нужно.

В этом случае у вас есть JSON. Это объект, который был сериализован в строковый формат.
Я бы сделал вот что:
1. Создайте класс с дизайном, параллельным вашему JSON.
2. DeSerialize JSON в экземпляры этого класса (объекты)
3. считайте нужные свойства из этих экземпляров.

Рекомендации:
Десериализация объекта[^]
Как сериализовать и десериализовать JSON с помощью C# - .NET | Microsoft Docs[^]


Member 10285969

можете ли вы показать мне образец, используя мои требования json? пожалуйста

MadMyche

Я могу помочь вам с конкретными проблемами, но я не собираюсь писать все это.

Я бы использовал онлайн-инструмент для создания классов из JSON, я использую этот для C#, который вы должны иметь возможность перекодировать в VB
http://json2csharp.com/

Как только вы это поняли, пройдите через примеры/учебные пособия из моего ответа; а затем начните работать с тем, что вы узнали, в то, что вам нужно.

Member 10285969

Спасибо, что указали мне правильный вопрос, чтобы спросить, inorder для того чтобы лучше это понять. но ссылки, которые вы даете, были не слишком просты для меня, чтобы понять, но я использовал ваши методы, чтобы знать, что искать в youtube, и это видео дало мне то, что я хотел.. "[VB.NET] Visual Basic Project - приложение погоды через JSON API Response.mp4"
он говорит о "сериализуемом" и "сериализуемом атрибуте", который я смог использовать со ссылкой, которую вы дали, когда я преобразовал его обратно в vb.net "http://json2csharp.com/"

MadMyche

Я надеялся, что это поможет.