2013-09-04 5 views
1

Json 개체의 데이터를 사용하여 목록보기를 채우고 있습니다. 객체에는 다음과 같은 매개 변수가 있습니다.Json 중첩 매개 변수

"id": "339150749455906", 
"posts": { 
"data": [ 
{ 
"id": "339150749455906_545370565500589", 
"from": { 
    "category": "Food/beverages", 
    "name": "Pepsi", 
    "id": "339150749455906" 
}, 
"story": "Pepsi updated their cover photo.", 
"picture": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash3/942740_545370555500590_46289134_s.jpg", 
"link": "http://www.facebook.com/photo.php?fbid=545370555500590&set=a.365573920146922.72816.339150749455906&type=1&relevant_count=1", 
"icon": "http://static.ak.fbcdn.net/rsrc.php/v2/yz/r/StEh3RhPvjk.gif", 
"actions": [ 
    { 
    "name": "Comment", 
    "link": "http://www.facebook.com/339150749455906/posts/545370565500589" 
    }, 
    { 
    "name": "Like", 
    "link": "http://www.facebook.com/339150749455906/posts/545370565500589" 
    } 
], 

매개 변수/키 "actions"내의 링크에 액세스하려고합니다. 지금까지 저는 다음을 사용하고 있습니다 :

foreach (var post in postsTaskResult.posts.data) 
{ 
    link = new Uri(string.Format("{0}", (string)post["link"])); 
} 

그러나 이것은 "데이터"의 링크 만 가져옵니다. 다른 '링크'에 어떻게 액세스합니까?

+1

_actions_ 배열을 반복 할 다른 루프는 어떻습니까? 'foreach (post.actions에서의 var 작업)' – tim

+0

다시 잘못된 태그. 더 나은 태그는 더 나은 답변을 가져옵니다. – naveen

+0

나는 팀의 버전을 사용하고 있으며 작동 중입니다. 고마워요! –

답변

0

시도해보십시오.

var actionLinks = new List<string>(); 
var actions = post["actions"] as JArray; // if this works then all is well 
foreach(var item in actions) 
{ 
    actionLinks.Add((string)item["link"]); 
} 

나는 당신이 또한

var actionLinks = ((JArray)post["actions"]) 
     .Children<JObject>() 
     .Select(a => (string)a["link"]) 
     .ToList(); 

매우 해제 테스트처럼이 일부 공상 Linq에 사용할 수 있습니다 생각합니다. 바로 알려주세요.