Десериализовать JSON с помощью vb.net - PullRequest
0 голосов
/ 11 мая 2018

Это мой созданный вручную класс

Public Class ZohoList
    Public Property Select_Store() As String
        Get
            Return m_Select_Store
        End Get
        Set
            m_Select_Store = Value
        End Set
    End Property
    Private m_Select_Store As String
End Class

Public Class RootObject
    Public Property Zoho_List As List(Of ZohoList)
        Get
            Return m_Zoho_List
        End Get
        Set
            m_Zoho_List = Value
        End Set
    End Property
    Private m_Zoho_List As List(Of ZohoList)
End Class

После того, как я получу ответ JSON, как это

{
   "Store_Money_Snapshot":[
      {
         "TODO":"YES",
         "Date_field":"10-May-2018",
         "Xpawn_Money":"3562",
         "Select_Store":"TEST",
         "Total_Counted_Money":"$ 3,000.00",
         "Store_from_Xpawn_pc2":"TEST",
         "Discrepancy_Amount":"$ -562.00",
         "Store_Problem_fixed":"NO",
         "ID":"1111111111111111111",
         "Image":"",
         "Store_Closing_Balance":"$ 33,482.00"
      },
      {
         "TODO":"YES",
         "Date_field":"10-May-2018",
         "Xpawn_Money":"10234",
         "Select_Store":"TEST2",
         "Total_Counted_Money":"$ 9,800.00",
         "Store_from_Xpawn_pc2":"TEST2",
         "Discrepancy_Amount":"$ -434.00",
         "Store_Problem_fixed":"NO",
         "ID":"2222222222222",
         "Image":"",
         "Store_Closing_Balance":"$ 33,482.00"
      }
   ]
}

Мой код vb.net для десериализации объекта помещается в две строки

Dim myO = JsonConvert.DeserializeObject(Of RootObject)(response)
            Dim items = myO.Zoho_List

            For Each item In items
                lTodo.Add(item.Select_Store.ToString)
                'Now comes th code
            Next

Из всего ответа мне нужно только значение Select_Store, поэтому в классе я помещаю только это значение

Также я попытался поместить все значения в мой класс, но все равно он не десериализует ответ JSON

1 Ответ

0 голосов
/ 11 мая 2018

Ваш RootObject соединен с первой фигурной скобкой {.

В json есть одно свойство этого «корневого объекта»: Store_Money_Snapshot, которого нет нигде в вашем RootObject. Store_Money_Snapshot - это массив или List<> или объекты. Эти объекты содержат вашу собственность Select_Store.

Так что-то вроде этого должно заставить вас двигаться:

Public Class RootObject
  '  RootObject is a HORRIBLE name.

    Public Property Store_Money_Snapshot As List(Of ZohoList)

End Class

Public Class ZohoList
  '  Again, ZohoList is a HORRIBLE name.

    Public Property Select_Store As String
End Class

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

...