json反序列化为元素C#返回空值

这是我要反序列化的json响应

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

}]
},{
"Musician": {
    "id": "554344","Name": "16468","Age": "32"
},"Albums": [{
    "id": "34323","AlbumName": "Awesome one","AlbumName": "Awesome two","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; }
    }

这是我用来反序列化对象的代码

  var musicians = JsonConvert.DeserializeObject<List<Musician>>(data);
  var album = JsonConvert.DeserializeObject<List<Album>>(data);

musicians变量在调试时显示2条记录,但是元素id,Name,Age的值始终显示为null。无法识别到底是什么原因造成的。

lengleng123456 回答:json反序列化为元素C#返回空值

您应该将反序列化为RootObjects的集合。

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

输出

enter image description here

本文链接:https://www.f2er.com/3166236.html

大家都在问