2016-03-03 1 views
1

Я строй следующих классов, где я хочу, чтобы хранить данные (помощь также может быть в C#)Проблем с Json десериализацией в .NET

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

Public Class DatasourceInfo 
    Public Property name As String 
    Public Property description As String 
    Public Property created As String 
    Public Property modified As String 
    Public Property identifier As String 
    Public Property href As String 
    Public Property cacheAvailable As Boolean 
    Public Property id As ULong 
End Class 

я получаю данные в формате JSON следующим образом:

[{ "name":"MyName1", 
    "description":"MyDescription1", 
    "created":1244193265000, 
    "modified":1264515442000, 
    "identifier":"Identifier==", 
    "href":"https://....", 
    "cacheAvailable":true, 
    "id":29}, 

    {"name":"MyName2", 
    "description":"MyDescription2", 
    "created":1244193265000, 
    "modified":1264515442000, 
    "identifier":"Identifier==", 
    "href":"https://....", 
    "cacheAvailable":true, 
    "id":30}] 

Использование RestSharp (раствор не должен использовать RestSharp) Я пытаюсь получить данные в моем классе с:

Public Function getDatasources(ByVal _token As String) As String 
    Dim client = New RestClient(_baseURI) 
    Dim request = New RestRequest("/data", Method.GET) 
    request.AddHeader("Authorization", "Basic " + _token) 
    Dim response = client.Execute(Of DatasourceInfos)(request) 
    Return response 
End Function 

Но, глядя в response object, я ничего не сопоставлял с моими классами. Любой, кто может сказать мне, что я делаю неправильно? Я сравнил этот код со многими другими на SO, но я просто не вижу, что не так.

ответ

1

В показанном json нет ничего относительно вашего контейнера класса DatasourceInfos. Для этого, JSON будет выглядеть примерно так:

{ 
    "DSInfoItems": 
    ...all your json .... 
} 

Json.NET, по крайней мере, лает о формате при попытке десериализации в DatasourceInfos но десериализации в массив или список DatasourceInfo легко:

Dim DS = JsonConvert.DeserializeObject(Of List(Of DataSource))(jstr) 
+1

это работает. большое спасибо! – ruedi

 Смежные вопросы

  • Нет связанных вопросов^_^