带有类RootObject的JSON DeserializeObject

时间:2016-08-18 16:59:58

标签: c# json class deserialization json-deserialization

嘿,我有以下json字符串:

{  
   "status":{  
      "msg":"Success",
      "code":0,
      "version":"1.0"
   },
   "metadata":{  
      "music":[  
         {  
            "external_ids":{  },
            "label":"Atlantic Records",
            "release_date":"2010-09-13",
            "album":{  
               "name":"Passion, Pain & Pleasure"
            },
            "title":"Bottoms Up",
            "duration_ms":"242013",
            "genres":[  
               {  
                  "name":"R&B\\Soul\\Funk"
               }
            ],
            "acrid":"63b14329c3beafe35cf08b144a2b4a31",
            "result_from":3,
            "artists":[  
               {  
                  "name":"Trey Songz"
               }
            ]
         }
      ],
      "timestamp_utc":"2016-08-18 13:56:40"
   },
   "result_type":3
}

我正在尝试获取以下属性:

label
album > name
title
duration_ms
genres > name
artists > name

我拥有的C#代码是:

dynamic data = Newtonsoft.Json.JsonConvert.DeserializeObject<mReconize.musicJsonReturn.RootObject>(json);
Console.WriteLine(data["metadata"]["music"].label);

当然数据[“元数据”] [“音乐”]。标签导致错误,但我不确定为什么?

  

附加信息:无法将带有[]的索引应用于类型为“mR.musicJsonReturn.RootObject”的表达式

enter image description here

1 个答案:

答案 0 :(得分:3)

尝试:

Console.WriteLine(data.metadata.music[0].label);

您不使用数组而是使用对象。

永远不要使用动态。

相关问题