Как взять этот вложенный JSON в классы - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть эта вложенная структура

enter image description here

и я хочу разобрать ее на классы.У меня есть этот код, чтобы получить файл JSON и десериализовать его

 Public Function getDatasources(ByVal _token As String) As List(Of Results)
        Dim client = New RestClient(_baseURI)
        Dim request = New RestRequest("/datasource", Method.GET)
        request.AddHeader("Authorization", "Bearer " + _token)
        request.AddHeader("environment", _environment)
        Dim jstr = client.Execute(request).Content
        Dim datasourceInfo As List(Of Results) = JsonConvert.DeserializeObject(Of List(Of Results))(jstr)

        Return datasourceInfo

    End Function

И построить эту структуру классов

Public Class Results
    Public Property results As List(Of DatasourceInfos)
End Class

Public Class DatasourceInfos
    Public Property DSContainer() As List(Of DatasourceInfo)
End Class

Public Class DatasourceInfo
    Public Property id As String
    Public Property name As String
    Public Property description As String
    Public Property created As ULong
    Public Property modified As ULong
    Public Property creator As List(Of Creator)
    Public Property editor As List(Of Editor)
End Class

Public Class Creator
    Public Property email As String
    Public Property login As String
End Class

Public Class Editor
    Public Property email As String
    Public Property login As String
End Class

Но при выполнении кода объект datasourceInfo пуст, и я не знаю,Зачем.Кто-нибудь, кто может помочь мне здесь?

1 Ответ

0 голосов
/ 21 сентября 2018

Вы ошиблись значением значков JSON.Только квадратные скобки [] обозначают массивы / списки.Фигурные скобки {} обозначают объекты .

  • results - это список DatasourceInfo ()не список списка).

  • DatasourceInfo.creator является одиночным Creator, и:

  • DatasourceInfo.editor - это одиночный Editor.

Ваш код должен бытьизменено на:

Public Class Results
    Public Property results As List(Of DatasourceInfo)
End Class

Public Class DatasourceInfo
    ...your other properties...

    Public Property creator As Creator
    Public Property editor As Editor
End Class

Класс DatasourceInfos (обратите внимание на s на конце) можно удалить полностью.

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