2013-06-09 3 views
0

페이스 북 API에 대한 나머지 호출을하고 있습니다. 다음과 같은 방법으로 응답을 처리 할 때.페이스 북 요청에서 JSON 구문 분석에 문제가 발생했습니다. 자바 스크립트

$("#fb-root").append(JSON.stringify(response)); 

나는 문자열을 얻을 :

[{ 
     "code": 200, 
     "headers": [{ 
       "name": "Access-Control-Allow-Origin", 
       "value": "*" 
      }, { 
       "name": "Cache-Control", 
       "value": "private, no-cache, no-store, must-revalidate" 
      }, { 
       "name": "Connection", 
       "value": "close" 
      }, { 
       "name": "Content-Type", 
       "value": "text/javascript; charset=UTF-8" 
      }, { 
       "name": "ETag", 
       "value": "\"{e_tag}\"" 
      }, { 
       "name": "Expires", 
       "value": "Sat, 01 Jan 2000 00:00:00 GMT" 
      }, { 
       "name": "Pragma", 
       "value": "no-cache" 
      } 
     ], 
    "body": "{\n \"data\": [\n {\n \"name\": \"{name}\",\n \"id\": \"{id}\"\n },\n {\n \"name\": \"{name}\",\n \"id\": \"{id}\"\n },\n {\n \"name\": \"{name}\",\n \"id\": \"{uid}\"\n },\n {\n \"name\": \"{name}\",\n \"id\": \"{uid}\"\n }\n ],\n \"paging\": {\n \"next\": \"http://graph.facebook.com/{my_uid}/mutualfriends?user={uid_1}&access_token={access_token}&limit=5000&offset=5000&__after_id={last_id}\"\n }\n}" 
    } 
] 

라인 :

$("#fb-root").append(JSON.stringify(response[0].body)); 

결과 :

"{\n \"data\": [\n {\n \"name\": \"Dan Weiss\",\n \"id\": \"11700083\"\n },\n {\n \"name\": \"Sonny Pearce\",\n \"id\": \"613521868\"\n },\n {\n \"name\": \"Cody Frost\",\n \"id\": \"678251338\"\n },\n {\n \"name\": \"Nathaniel Brown\",\n \"id\": \"1359093168\"\n }\n ],\n \"paging\": {\n \"next\": \"http://graph.facebook.com/554718794/mutualfriends?user=517472645&access_token=CAAFSqbUvb0IBAHPL4pfwTiBcc2EN00Kal6QWiNW1P0I1HDBqFkZCh8uDD6UWJkRRfam6GtlAtynWRp5eZBweDCWaJlkVMH7DSkwhgAXbQwvbOhEi0ZA2XDyyuOI7oq5yKT0zH9N6ZACrAMMeWInJOjwrrHBZBsewZD&limit=5000&offset=5000&__after_id=1359093168\"\n }\n}" 

그러나

$("#fb-root").append(JSON.stringify(response[0].body.data)); 

빈 페이지를 반환합니다. 아무도 내가 뭘 잘못 설명 할 수 있습니까?

답변

0

response[0].body.data은 문자열입니다. 따라서 JSON으로 변환해야만 사용할 수 있습니다.

$("#fb-root").append(JSON.stringify((JSON.parse(response[0].body)).data));

+0

안녕하세요 @ysrb 답장을 보내 주셔서 감사합니다. 내가 제안한 변경을 구현할 때 "NotFoundError : DOM Exception 8"오류가 발생합니다. –

+0

안녕하세요 Ben, 어떤 부품을 찾을 수 없습니까? JSON.parse가 작동합니까? – ysrb

+0

안녕하세요 @ysrb, 코드가 정확합니다. Javascript는 순수한 JSON 객체를 html 요소에 추가하려고하는 것을 좋아하지 않았습니다. 그것을보기 위해 JSON.stringify()에 넣어야했습니다. 무리 감사! –

관련 문제