我将JSON字符串从服务器传递给Django模板。当我将JSON字符串分配给jQuery变量时,我得到了unicode语法。
PY:
# Call Facebook Graph API to get list of Friends.
result = facebook.GraphAPI(
user.access_token).get_connections('me', 'friends')
friends = result["data"]
jQuery / Django模板:
var friends = {{friends}};
检查Firebug中的作业:
[
{
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'
}
]
答案 0 :(得分:4)
您需要在服务器端将friends
转换为JSON。您正在看到Python表示,有时候看起来像JSON,但不是。
答案 1 :(得分:2)
friends
变量不是JSON字符串,就像你说的那样,而是一个Python对象,有时看起来就像JSON一样打印出来以传递给它。
在将其传递给模板之前,您需要将其转换为正确的JSON。在views.py
的顶部,放置此行
from django.utils import simplejson
然后将simplejson.dumps(friends)
传递给模板,而不仅仅是friends
。
无论你做什么,只是不要试图在模板中手工构建JSON :)如果你没有完全控制源数据(你没有;在这种情况下,它来自Facebook)你会你的模板没有麻烦。
答案 2 :(得分:1)
当python表示一个字符串,例如u'123'
,那么它意味着该字符串是unicode,没有真正的优势来逃避它或删除它,它仍然表现得像一个普通的字符串