json deserialize возвращает нулевое значение для элементов c # - PullRequest
0 голосов
/ 04 ноября 2019

вот мой ответ json, который я пытаюсь десериализовать

[{
"Musician": {
    "id": "554343",
    "Name": "16408",
    "Age": "22"
},
"Albums": [{
    "id": "34343",
    "AlbumName": "Super charge",
    "ReleaseDate": "",
    "Hits": ""      
}, {
    "id": "34222",
    "AlbumName": "Super 2",
    "ReleaseDate": "",
    "Hits": ""

}]
},
{
"Musician": {
    "id": "554344",
    "Name": "16468",
    "Age": "32"
},
"Albums": [{
    "id": "34323",
    "AlbumName": "Awesome one",
    "ReleaseDate": "",
    "Hits": ""      
}, {
    "id": "34222",
    "AlbumName": "Awesome two",
    "ReleaseDate": "",
    "Hits": ""

}]
}]

вот мой класс

    public class Musician
    {
        public string id { get; set; }
        public string Name { get; set; }
        public string Age { get; set; }
    }

    public class Album
    {
        public string id { get; set; }
        public string AlbumName { get; set; }
        public string ReleaseDate { get; set; }
        public string Hits { get; set; }
    }

    public class RootObject
    {
        public Musician Musician { get; set; }
        public List<Album> Albums { get; set; }
    }

это код, который я использую для десериализации объектов

*Переменная 1008 *

musicians показывает 2 числа записей во время отладки, но значение элементов id, Name, Age всегда показывает NULL. Не в состоянии распознать, что именно вызывает его.

1 Ответ

2 голосов
/ 04 ноября 2019

Вы должны быть десериализованы как набор RootObjects.

var musicians = JsonConvert.DeserializeObject<IEnumerable<RootObject>>(data);

Вывод

enter image description here

...