2011-02-28 2 views
1

서버에서 장고 템플릿으로 JSON String을 전달하고 있습니다. jQuery 변수에 JSON String을 할당하면 유니 코드 구문이 나타납니다.JSON 문자열에서 유니 코드 구문 (u'foo ')을 이스케이프 처리하는 방법은 무엇입니까?

Py를 :

# Call Facebook Graph API to get list of Friends. 
result = facebook.GraphAPI(
      user.access_token).get_connections('me', 'friends') 
friends = result["data"] 

jQuery를/장고 서식 :

var friends = {{friends}}; 

가 방화범 과제를 검사 : 파이썬 문자열을 나타내는 경우

[ 
     { 
     u'name': u'Joe Smith', 
     u'id': u'6500000' 
     }, 
     { 
     u'name': u'Andrew Smith', 
     u'id': u'82000' 
     }, 
     { 
     u'name': u'Dora Smith', 
     u'id': u'97000000' 
     } 
] 
+1

여기에 오류가 발생합니까? 오류에 대해 더 자세히 말하면 문제가 무엇인지 명확하게 알 수 있습니다. – senderle

답변

4

friends을 서버 측의 JSON으로 변환해야합니다. 파이썬 표현을 보았습니다. 파이썬 표현은 때때로 JSON과 비슷하지만 보이지 않습니다.

+0

이 답변은 정확합니다. 'friends '는 파이썬 사전 목록으로, 생각하는 JSON 문자열이 아닙니다. –

+0

감사합니다. –

1

예를 들어 u'123' 다음 뜻 문자열이 유니 코드이면, 이스케이프 처리 또는 제거하는 실제적인 이점은 없습니다. 여전히 정상적인 문자열처럼 동작합니다.

+1

오해가 아니라면 jquery가 실제로 받아들이는 json 데이터를 생성하는 것이 이점처럼 보입니다. – senderle

2

브라이언 골드만 (Brian Goldman)에 따르면, 변수 friends은 말한 것처럼 JSON 문자열이 아니라 JSON과 같이 인쇄 될 때 보이는 것처럼 보이는 Python 객체입니다.

템플릿으로 전달하기 전에 적절한 JSON으로 변환해야합니다. 당신의 views.py의 상단에이 줄을

from django.utils import simplejson 

을 넣고 아니라 단지 friends보다, 템플릿에 simplejson.dumps(friends)를 전달합니다.

템플릿을 손으로 JSON을 구성하지 마십시오. 원본 데이터를 완전히 제어하지 않으면 (이 경우 페이스 북에서 온 것입니다.) 템플릿에 문제가 없습니다.

관련 문제