如何将单引号 (') 捕获到 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.parsejsfiddle.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 的字符串中?的主要内容,如果未能解决你的问题,请参考以下文章

请教jsonJSON.parse中双引号如何解决

JSON.parse无双引号如何实现转换

在 JSON.parse 期间在节点中捕获异常

$_POST 正在删除单引号(或如何将单引号放入 $_POST)[重复]

Python如何将单引号转换为双引号以格式化为json字符串

带单引号和双引号的 JSON.parse 字符串?