2011-09-20 27 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 
    } 
} 
] 
} 

正如您所看到的,它非常複雜。 「根」是必要的,因爲其他人不能將數據解析成JObject實例。

JObject o = JObject.Parse(jsonString); 

JSON數據非常大。有多個項目與不同的ID。我想找到一個具有特定ID的項目。

問題是,當我試圖通過數據進行foreach時,它只有一個元素。

KEY: root 
VALUE: the other stuff. 

那麼,如何去通過裏面有什麼其他的東西和週期?

回答

5

沒關係..

我剛解決了它。

我刪除了尾部[和結束]。

所以它現在是一個有效的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);

這將給你一個充滿數據的陣列,可以隨意循環......真棒。 :)