2016-08-18 6 views
0

ねえ、私は次のようなJSON文字列を持っているすべて:JSON DeserializeObject

{ 
    "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); 

当然、データ["metadata"] ["music"]。ラベルはcaです。エラーを使用していますが、理由はわかりません。

追加情報:

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

あなたドン」:[]型の表現に 'mR.musicJsonReturn.RootObject'

enter image description here

+1

'data.metadata.music [0] .label'を試してください – DavidG

+0

なぜ投票したのか分かりませんか? – StealthRT

+0

私はそうではありませんでしたが、おそらくスクリーンショットの価値にどのようにアクセスするのかはかなり明らかでしたか? – DavidG

答えて

3

てみてインデックスを適用することはできません配列ではなくオブジェクトで作業する。

ダイナミックを使用することは決してありません。

+1

"決して"ダイナミックを使用しないでください!それは非常に便利な時がたくさんあります。 – DavidG

+0

ダイナミックを使用する必要がある場合はほとんどありません。 – Fabian

+0

正確には、なぜ「決して」と言わなかったのですか? – DavidG

関連する問題