[英]How to escape unicode syntax (u'foo') in JSON string?
我正在将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'
}
]
您需要在服务器端将friends
转换为JSON。 您会看到Python表示形式,有时看起来像JSON,但实际上不是。
正如布莱恩·戈德曼(Brian Goldman)所指出的,正如您所说的, friends
变量不是JSON字符串,而是Python对象,有时在打印输出时看起来像JSON。
您需要先将其转换为适当的JSON,然后再将其传递给模板。 在您views.py
的顶部,将这一行
from django.utils import simplejson
然后将simplejson.dumps(friends)
传递给模板,而不是仅将friends
传递给模板。
无论您做什么,都不要尝试在模板中手动构造JSON :)如果您无法完全控制源数据(并且您没有,在这种情况下,它来自Facebook),您将无穷无尽。模板的麻烦。
当python代表一个字符串,例如u'123'
,则意味着该字符串是unicode,转义或删除它并没有任何真正的优势,它的行为仍与普通字符串相似
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.