2013-08-12 6 views
0

이 json 데이터{"response":[2,{"vid":165971367},{"vid":165971350}]}에서 "VID"를 구문 분석하려고합니다. 하지만 구문 분석하고 싶지 않습니다. 나는 json 데이터에서 "2"에 문제가 있다고 생각한다. 이 수치를 제거하는 방법? 여기 json에서 정보 가져 오기

내 코드입니다 :

HttpClient client = new HttpClient(); 
HttpResponseMessage response = await client.GetAsync("some json data"); 
string googleSearchText = await response.Content.ReadAsStringAsync(); 
JObject googleSearch = JObject.Parse(googleSearchText); 
IList<JToken> results = googleSearch["response"].Children().ToList(); 
IList<SearchResult> searchResults = new List<SearchResult>(); 
+2

하지 문제가 무엇인지 - 샘플이 유효 JSON이다. 표시된 코드가 없으므로 코드에 문제가 있는지 확인할 수 없습니다. –

+0

"2"를 제거하고 두 번째 객체에서 데이터를 파싱하는 방법을 원합니다. – user2660964

+0

"구문 분석"을 사용합니다. "JSON.Net에서 파싱 된 데이터 처리". 나는 항상 "parse"라는 사용법에 대해 혼란 스럽습니다. 미안합니다. –

답변

2

경우 Json.Net을 usng하고 속성이 그래서 "응답"이라고 한 다음에하는 jobject에 그 JSON로드 된 : myJson [ "응답"]

이는 3 개의 요소가있는 JArray이므로 첫 번째 요소는 건너 뜁니다. .Skip (1) 그런 다음 당신은 IEnumerable을 가지고 "VID"속성을 원하는, 그래서 뭔가 같은 : 물론

var myVids = (from vids in myJObject["response"].Skip(1) 
       where vids["vid"] != null 
       select vids["vid"]) 
/* JSON 

{"response": 
    [2, 
    {"vid":165971367}, 
    {"vid":165971350} 
    ] 
} 

*/ 

, 이것은 단지 개념이며 실제를 조정해야합니다.

1

당신은 Skip 방법을 사용하여 첫 번째 항목을 건너 뛸 수 있습니다 :

IList<JToken> results = googleSearch["response"].Skip(1).ToList();