【问题标题】:JSON object parsing and how to escape unicode charactersJSON对象解析以及如何转义Unicode字符
【发布时间】:2014-08-16 10:34:13
【问题描述】:

我对 javascript 相当陌生,所以我不知道这是否会正确措辞,但我正在尝试解析我从数据库中读取的 JSON 对象。我使用 Django 从 python 脚本向 html 页面发送变量,其中变量如下所示:

{
  "data":{
    "nodes":[
      {
        "id":"n0",
        "label":"Redditor(user_name='awesomeasianguy')"
      },
      ...
    ]
  }
}

目前,响应如下:

"{u'data': {u'nodes': [{u'id': u'n0', u'label': u"Redditor(user_name='awesomeasianguy')"}, ...

我尝试使用replaceAll 类型语句取出像 u' 这样的字符,如下所示。然而,这并不是一个简单的解决方案,似乎必须有更好的方法来逃避这些角色。

var networ_json = JSON.parse("{{ networ_json }}".replace(/u'/g, '"').replace(/'/g, '"').replace(/u"/g, '"').replace(/"/g, '"'));

如果对我不使用的方法或什至为此使用的工具有任何建议,将不胜感激。

【问题讨论】:

  • 您应该展示如何获取数据、如何将其传递给模板以及如何在模板中输出数据。
  • 我重新打开这个问题的原因是问题根本不在于从 JSON 中解析字符,而在于首先阻止它们被创建。为了解决这个问题,正如我在上一个问题中所说,我们需要知道 JSON 是如何输出的。

标签: python json django unicode


【解决方案1】:

使用模板过滤器“|safe”禁用转义,例如,

var networ_json = JSON.parse("{{ networ_json|safe }}";

在此处阅读:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#safe

【讨论】:

  • 谢谢。这几乎正​​是我想要的,但是在几个替换语句取出“u”字符等之后,我得到了一个语法错误:意外标识符。有什么想法吗?
  • 请记住,在将对象标记为安全后,您将无法再访问它的属性,例如 {{ networ_json.foo }}。也许这就是你得到那个错误的原因?也许你可以给我一个pastebin看看?
猜你喜欢
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多