2014-10-10 2 views
1
[{"conversation":{"id":"04d27d987de7f897580096b099815691cd4a89_ecf47fb8-cd72-4e5d-925c-5a63aa2fb315","wid":"04d27d987de7f897580096b099815691cd4a89","nicknames":{"owner":"Wiz_boltebony","originator":"Username123"},"group_token":"5a4b2b9d-ed39-4029-a76e-347a8c99806b"}},{"conversation":{"id":"05043a6393ec32806194414f2239a8697fa788_ecf47fb8-cd72-4e5d-925c-5a63aa2fb315","wid":"05043a6393ec32806194414f2239a8697fa788","nicknames":{"owner":"Summer_Reflection","originator":"Wiz_boltebony"},"group_token":"0b77eb02-aa57-4811-91fd-5fa61997b6a0"}}] 

이 json "배열"의 (group_token ":"0b77eb02-aa) ... 등의 모든 값을 구문 분석하려고합니다. 이 http://gyazo.com/5840a31b71d4cbea626899030debe5d8배열 내부의 Json 객체를 구문 분석하는 방법은 무엇입니까?

내 코드가 전혀 작동하지 않습니다

다음
dynamic j = JsonConvert.DeserializeObject(contents); 
foreach (var c in j[0]["conversation"]) 
{ 
    Console.WriteLine(c["group_token"]); 
} 

는 JSON을 배치하는 방법에 이미지입니다 :

여기 내 코드입니다! 이 group_token 값을 추출하려면 어떻게해야합니까?

답변

3

코드를 약간 변경해야합니다 (속성을 기준으로 객체를 반복합니다).

dynamic j = JsonConvert.DeserializeObject(contents); 
foreach (var c in j) 
    Console.WriteLine(c["conversation"]["group_token"]); 

conversation 개체의 속성을 통해 현재 코드를 반복하고 잘못 각 속성의 group_token 아이를 얻을하려고합니다.

+0

할렐루야! 너는 나의 영웅이야. –

1

아래에서 시도해 볼 수도 있습니다. @Ulugbek Umirov와 완전히 합의했습니다.

var _jArr = (JArray)JsonConvert.DeserializeObject(contents); 
IEnumerable<string> _groupToken = _jArr.Select(conv => conv["conversation"]["group_token"].ToString()); 
관련 문제