JSON对象解析及如何转义Unicode字符

1 投票
1 回答
2041 浏览
提问于 2025-04-18 11:04

我对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&#39这样的字符,代码如下。不过,这个方法并不是那么简单,感觉应该有更好的办法来处理这些字符。

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

如果有人能提供我没有使用过的方法,或者推荐一些工具来解决这个问题,我会非常感激。

1 个回答

1

使用模板过滤器 "|safe" 可以禁用转义,也就是说,它可以让你直接显示一些内容,而不需要把特殊字符变成普通字符。比如说,如果你有一些HTML代码,使用这个过滤器后,它就会被当作代码来处理,而不是被转义成普通文本。

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

你可以在这里了解更多信息:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#safe

撰写回答