2010-12-21 6 views
0

우선, 나는 너희들이 훌륭하다고 말하게한다. stackoverflow에 대한 많은 도움을 찾았습니다. 그러니 좋은 직장을 유지하십시오.ASP.NET Json - 데이터 질문에 액세스

여기 내 문제가 있습니다. 나는 facebook을위한 app을 쓰려고 노력하고있다. 그리고 JSON에 대한 약간의 도움이 필요합니다.

여기 내 HomeController.cs의 일부입니다. 특별한 것은 없습니다.

dynamic me2 = app2.Api("/me/feed"); 
ViewData["data"] = me2.data; 

여기 내 profile.aspx입니다. 그 완벽하게 작동하고 내 페이스 북의 벽에있는 모든 게시물을 씁니다. 그래서 지금 확인

<% foreach (JsonObject item2 in (ViewData["data"] as Facebook.JsonArray)) 
     { %> 
     <li> 
      <%=item2["message"] %> 
     </li> 
    <%} %> 

, 문제에 대한 그것의 시간.

"data": [ 
     { 
     "id": "100001721189066_164115910298999", 
     "from": { 
      "name": "Poiskus Nulaena", 
      "id": "100001721189066" 
     }, 
     "message": "bleble", 
     "actions": [ 
      { 
       "name": "Comment", 
       "link": "http://www.facebook.com/100001721189066/posts/164115910298999" 
      }, 

그래서 ViewData [ "data"] = me2.data 때문에; in .cs 파일에서 .aspx 파일은 메시지를 반환합니다 (이 예제에서는 블블). 하지만 "actions"배열의 "link"또는 "name"요소에 어떻게 액세스 할 수 있습니까? 나는 시도했다 :

-ViewData [ "actions"] = me2.actions; -> 작동하지 않습니다.

-ViewData [ "actions"] = me2.data.actions; -> 도움이 될 것입니다 내 경우

어떤 도움을 작동하지 않습니다 중 하나

-nested foreach는 작동하지 : P

+0

json 라이브러리는 무엇을 사용하고 있습니까? JSON .NET? – StriplingWarrior

답변

2

데이터가 JSON 배열입니다 당신에게

세바스티안 감사 ,보다는 오히려 객체. 첫 번째 항목에 대한 작업 또는 모든 항목의 모음을 찾고 있습니까? ,

var actions = m2.data.Select(d => d["actions"]); 
var actionsFromFirstItem = actions.First(); 

편집

난 당신이 사용하고있는 페이스 북의 API에 익숙하지 않다 :이 동적 객체 어떻게 작동하는지 잘 모르겠지만, 이것은 당신에게 올바른 아이디어를 줄 것이다 JSON .NET을 예제로 사용하겠습니다. 이 코드 :

var allActions = from d in jsonObject["data"] 
       from a in d["actions"] 
       select new {name = a.Value<string>("name"), link = a.Value<string>("link")}; 

은 ... 당신에게 배열의 모든 게시물의 모든 작업을 대표하는 익명 개체의 컬렉션을 줄 것이다, 그러나 그들은 특정 게시물로 연결되지 않습니다. jsonObject [ "data"]를 콜렉션으로 취급하는 방법을 볼 수 있으며, 각 요소의 "actions"목록을 다른 콜렉션으로 나열합니다.

결과를 원하는대로 정의하지 않았으므로 이제는 내가 당신을 도울 수 있습니다. 페이스 북 API에 대해 많이 알지는 못하지만 강력한 유형의 var을 사용하는 것이 나을 것이고 동적 객체를 사용하는 대신 문자열로 구성원에 액세스하는 것이 더 나을 것 같습니다. 행운을 빕니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 나는 그것을 작동시킬 수 없다. 사실 배열 (데이터) 안에있는 배열 (동작)에 액세스하려고합니다. 오, 나는 이것을 하나 이상의 벽 게시판에서 작동 시키려고 노력하고있다. 세바스찬 – Sebastian