如何将单引号 (') 捕获到 JSON.parse 的字符串中?
Posted
技术标签:
【中文标题】如何将单引号 (\') 捕获到 JSON.parse 的字符串中?【英文标题】: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.parse
jsfiddle.net/0v4j9qs5,解析你的测试数据对我来说很好。所以尝试从你的 js 代码中删除 JSON.parse
然后再试一次
您需要确保 delivery_provider|jsonify
生成的字符串将所有出现的'
替换为\'
Mikael,我不是 Python/Django 程序员,我现在不知道如何与他一起使用转义符号
什么是jsonify
?请注意,escapejs
过滤器会正确转义您的引号,但我不知道它会如何与未知过滤器交互。
【参考方案1】:
看看escapejs
template tag。
来自 django 文档:
转义字符以用于 JavaScript 字符串。
所以,在你的情况下,它可能是:
var dataFromServer = JSON.parse(' delivery_provider|jsonify|escapejs ');
另外,如果您使用django-jsonify,文档中有用法示例:
var items = items|jsonify ;
这意味着,作者打算跳过你做JSON.parse
的部分并将对象直接放入javascript代码。
【讨论】:
以上是关于如何将单引号 (') 捕获到 JSON.parse 的字符串中?的主要内容,如果未能解决你的问题,请参考以下文章
$_POST 正在删除单引号(或如何将单引号放入 $_POST)[重复]