2014-11-18 2 views
2

Windows Phone 앱에서 JSON 데이터를 구문 분석해야합니다. 중첩되지 않은 키의 값을 가져올 수 있습니다. 하지만 JSON에 배열 안에 배열이 있다면 JSON 파일에서 값을 추출하는 방법은 무엇입니까?중첩 된 JSON 데이터 구조를 구문 분석하는 방법

과거에는 JSON을 JArray 개체로 구문 분석 한 다음 JToken에서 지정된 문자열 키 값을 얻었습니다.

아래의 JSON에서 peoplemenwomen이고 men에는 다른 ID를 가진 많은 남성이 있습니다. JSON 문자열로 완성 된이 기사를 보면 특정 남성의 ID 값을 어떻게 인쇄 할 수 있습니까? 여기에 중첩 된 배열이 없다면 JArray로 변환하여 인덱스 된 값에 액세스 할 수 있었지만 지금은 어떻게해야합니까?

{ 
    "people": [ 
     { 
      "men": [ 
       { 
        "id": 0, 
        "name": "alex", 
        "age": 25 
       }, 
       { 
        "id": 1, 
        "name": "bob", 
        "age": 26 
       }, 
       { 
        "id": 2, 
        "name": "charlie", 
        "age": 27 
       } 
      ] 
     }, 
     { 
      "women": [ 
       { 
        "id": 0, 
        "name": "alexys", 
        "age": 25 
       }, 
       { 
        "id": 1, 
        "name": "bethany", 
        "age": 26 
       }, 
       { 
        "id": 2, 
        "name": "catherine", 
        "age": 27 
       } 
      ] 
     } 
    ] 
} 
+0

것은 당신이 Newtonsoft.Json를 사용하고 있습니까? 여기에 까다로운 것은없는 것 같습니다. 코드가 없으면 어디서 잘못되었는지 말할 수 없습니다. –

답변

6

에 좋은 가이드가, 당신은 당신이 관심있는 데이터가있는 JArray로 이동 SelectToken()을 사용할 수 있습니다 평소처럼 :

foreach (JToken m in men) 
{ 
    Console.WriteLine("id: " + m["id"]); 
    Console.WriteLine("name: " + m["name"]); 
    Console.WriteLine("age: " + m["age"]); 
    Console.WriteLine(); 
} 
SelectToken() 경로를 제외하고 여성 배열

같은 일이 될 것입니다 people[1].women.

DEMO :https://dotnetfiddle.net/7BoiUO

+0

이것은 내가 가진 가장 유용한 파싱 기술이었다 :) Thanks mate – Abhishek

1

그것은 클래스를 생성하는 http://json2csharp.com/ 을 사용

여기 내 JSON이다. 텍스트가 아닌 그림으로 여기에 넣기 때문에 복사 할 수 없습니다. 배열의 경우 다른 클래스를 만들어야합니다. 귀하의 경우에는 Men [] 및 Women [] 배열을 포함하는 People 클래스가 있습니다. Men 및 Women 클래스에는 Id, Name, Age가 포함 된 다른 배열이 들어 있습니다. 비슷한 앱을 개발하고 Newtonsoft Json을 사용합니다. 배열과도 완벽하게 작동합니다.

+0

작은 사이트! – Lonefish

1

사용 Json.net 당신은 nuget를 통해 추가 할 수 있습니다.

JToken token = JToken.Parse(json); 
JArray men = (JArray)token.SelectToken("people[0].men"); 

거기에서 당신은 JArray을 처리 할 수 ​​있습니다 : 여기 최상위 JToken에서 nested json parsing

관련 문제