2011-09-20 4 views
2

일부 JSON 데이터를 구문 분석하려고합니다. James Newton-King's JSON.NET library을 사용하고 있습니다.JSON in .NET 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

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

이 의지를 사용 : 다른 사람은 어떻게 든 ... 사라 모든 데이터를 자유롭게 순환 할 수있는 배열을 제공합니다 ... 굉장합니다. :)