1

나는 100 가지를 시도하고 Google 및 Stackoverflow를 통해보고 있지만이 문제에 대한 해결책을 찾을 수 없습니다. 이 API 응답 본문 이후에 호출 한 내용은 모두 이고 정의되지 않은 메시지는입니다.API 응답에서 중첩 된 Javascript 객체를 반복합니다.

페이스 북 SDK의 응답은 다음과 같습니다

[ 
    { 
     "body": "[ 
      "data": [ 
       { 
        "name": "Larry Syid Wright", 
        "administrator": false, 
        "id": "xxx" 
       },  {   
        "name": "Melissa Long Jackson", 
        "administrator": false, 
        "id": "xxx" 
       },  {  
        "name": "Charlotte Masson", 
        "administrator": false, 
        "id": "xxx" 
       } 
      ], 
      "paging": {  
       "next": "url" 
      } 
     ]" 
    },{ 
     "body": "{ 
      "data": [  
       {   
        "id": "xxx_xxx",  
        "message": "In honor of Halloween, how many of you have your own ghost stories? Who believes in ghosts and who doesn't?",     
        "type": "status",   
        "created_time": "2014-10-31T20:02:01+0000",   
        "updated_time": "2014-11-01T02:52:51+0000",   
        "likes": {    
         "data": [    
          {     
           "id": "xxx",     
           "name": "Joe HerBatman Owenby Jr." 
          }   
         ],    
        } 
        "paging": {    
         "cursors": 
          {     
           "after": "xxx",     
           "before": "xxx"    
          }    
         }   
        } 
       },{   
        "id": "xxx_xxx",   
        "from": {    
         "id": "xxx",    
         "name": "Jessica Starling"   
        },  
        "message": "Watching the "Campaign" and I can't help but notice what a fantastic job they did (Will ferrell and all) with that North Carolina accent! Ya'll know we sound different than other southern states ;)",   
        "type": "status",   
        "created_time": "2014-11-01T02:36:21+0000",   
        "updated_time": "2014-11-01T02:36:21+0000",   
        "likes": {    
         "data": [    
          {     
           "id": "xxx",     
           "name": "Scott Williams"n    
          }   
         ] 
        }  
       }  
      ], 
      "paging": {  
       "previous": "xxx",  
       "next": "xxx" 
      } 
     }" 
    } 
] 

이 응답이 배치 통화에서입니다. 개별적으로 호출하면 응답을 쉽게 반복 할 수 있으며 모든 응답을 얻을 수 있습니다. 내가 배치에서 그들을 부를 때, 나는 과거의 "몸"을 얻을 수 없다. 그리고 배치 호출을 사용할 필요가있다.

console.log(response[0].body);는 본체 응답의 첫번째 부분의 내부 객체를 반환하지만 console.log(response[0].body.data); 복귀 정의한다. 나는 단지 그것을 얻지 않는다. 이것은 간단해야하지만 문에 자물쇠가있는 것과 같고 올바른 열쇠가 없습니다.

일반적으로 개체를 반복 할 때 문제가 없으므로 일반화 된 답변이 필요하지 않습니다. 내가보기에는 여기에있는 것이 무엇이든지 볼 수 있도록 도움이 필요하다. 본문 뒤에 아무 것도 호출하지 않은 경우 콘솔에 이 표시되지 않는 이유는 무엇이며이 값을 얻으려면 무엇을해야합니까?

+1

처럼

코드가 될 것이다. JSON으로 구문 분석하여 내부 값으로 가져와야합니다. – jfriend00

답변

2

JSON에 중첩 JSON이 포함되어 있습니다. 몸은 끈처럼 보인다. 몸에서

var body = JSON.parse(response[0].body); 
+0

정말 고마워요! 나는 응답이 문자열 일지조차 몰랐다. 그게 무슨 말이야? –

+1

다음 기사를 확인해보십시오. 질문에 대한 답변이 완전히 들어 있습니다. http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json/ – istos

+0

@istos, 그리고 많은 의미가 있습니다. –

1

값을 사용 json.So이 먼저 당신이 JSON.parse를 사용하여 구문 분석해야처럼 strings.which 포함되어 있습니다. 기본적으로 포함 된 JSON -이`body` 값은 단지 거대한 문자열

var body = JSON.parse(response[0].body); 
+0

감사합니다. 누군가 당신 앞에서 똑같은 대답을 했으므로 그 대답을 답으로 표시했습니다. 나는 네가 필요로하는 것을 얻었다. 감사하지만 너! –

+1

괜찮습니까? :) .. 하피 코딩 –

관련 문제