2011-09-20 14 views
2

いくつかのJSONデータを解析したいと思います。私はJames Newton-King's JSON.NET libraryを使用しています。.NETのJSON C#/ Csharp - オブジェクトから値を取得する

JSON文字列をJObjectに解析します。ここで私は解析しているJSONです:

"root": [ 
{ 
    "date": 1325400000000, 
    "id": 12313131, 
    "loc": "en_us", 
    "name": "New York, NY", 
    "products": [ 
    { 
     "@type": "asdf", 
     "city": "New York - Penn Station, NY (NYP)", 
     "code": "USA", 
    } 
    ], 
    "summary": { 
    "alert": [], 
    "end": 1325577000000, 
    "start": 1325400000000 
    } 
} 
] 
} 

これはかなり複雑です。 「root」は、データがJObjectインスタンスに解析されなかったためです。

JObject o = JObject.Parse(jsonString); 

JSONデータはかなり大きいです。 IDが異なる複数のアイテムがあります。 IDを指定してアイテムを探したい。

問題は、データをforeachするときに、要素が1つしかないことです。

KEY: root 
VALUE: the other stuff. 

どのように私は他のものに乗って、内部のものを循環するのですか?

答えて

5

Nevermind ..

私はちょうどそれを解決しました。

最後の[と最後]を削除しました。

だから、今で有効なJSONオブジェクトで、キー値のforeachのは魅力のように働いてます。..

  foreach (KeyValuePair<String, JToken> d in o) 
      { 
       Console.WriteLine(String.Format("Key: {0}; Value: {1}", d.Key, d.Value)); 
      } 

万歳!

これは部分的な解決策に過ぎません。今では他のものはフォーマットされていないので、最初のセグメントのみがフォーマットされます。

が所定の場所にすべてのものを残す...私は完全に馬鹿だった... ...くそー、このS

でもよりよい解決策を単にJArray ja = JArray.Parse(stringOfJson);

この意志を使用します。他の人は何とか...消えますあなたにすべてのデータを自由に循環させるための完全な配列を与える...素晴らしい。 :)

関連する問題