【问题标题】:How to catch single quote symbol (') into string for JSON.parse?如何将单引号 (') 捕获到 JSON.parse 的字符串中?
【发布时间】:2017-11-21 09:55:50
【问题描述】:

我从 Django 获取大量数据到模板中:

var dataFromServer = JSON.parse('{{ delivery_provider|jsonify }}');

任何时候当进入 Django 数据时会出现一些符号'这样的

{"id": 1, "company_name": "User's company", "address": null }

我的 javascript 代码因错误而崩溃

Uncaught SyntaxError: Unexpected identifier

因为符号'对前面的字符串有错误的解释。

如何通过 Python/Django 转义这个引号符号?或者,在前端是否存在一些解决方案?

【问题讨论】:

  • 你能举个例子吗?因为如果你放弃JSON.parsejsfiddle.net/0v4j9qs5,解析你的测试数据对我来说很好。所以尝试从你的 js 代码中删除 JSON.parse 然后再试一次
  • 您需要确保{{ delivery_provider|jsonify }} 生成的字符串将所有出现的' 替换为\'
  • Mikael,我不是 Python/Django 程序员,我现在不知道如何与他一起使用转义符号
  • 什么是jsonify?请注意,escapejs 过滤器会正确转义您的引号,但我不知道它会如何与未知过滤器交互。

标签: javascript django python-3.x


【解决方案1】:

看看escapejs template tag。 来自 django 文档:

转义字符以用于 JavaScript 字符串。

所以,在你的情况下,它可能是:

var dataFromServer = JSON.parse('{{ delivery_provider|jsonify|escapejs }}');

另外,如果您使用django-jsonify,文档中有用法示例:

var items = {{ items|jsonify }};

这意味着,作者打算跳过你做JSON.parse的部分并将对象直接放入javascript代码。

【讨论】:

    猜你喜欢
    • 2017-02-26
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    相关资源
    最近更新 更多