繁体   English   中英

如何在JSON字符串中转义unicode语法(u'foo')?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM