单引号在Django的模板,我已经打印出来的数据是这样的:JSON解析 - 内部名称
P.place = '{{place.json|safe}}';
然后在JavaScript文件我配对会这样:
place = JSON.parse(P.place);
一切都很好像数据:
{"category": "Cars", "name": "Z"}
因为字符串看起来像:
P.place = '{"category": "Cars", "name": "Z"}'
所以,我可以使用JSON.parse方法巫婆接受字符串作为输入解析它。
问题是,当我得到的数据这样的:
{"category": "Cars", "name": "Wojtek's Z"}
因为比JSON解析器输入字符串看起来像这样:
'{"category": "Cars", "name": "Wojtek'
我无法逃避JSON字符串内的单引号,因为那时JSON字符串变得无效。出于同样的原因,我无法用JSON字符串中的double和escape双引号替换周围的引号。
我的解决方案看起来像这样:
在HTML模板:
P.place = {{place.json|safe}};
在JavaScript
var place = JSON.stringify(P.place);
place = JSON.parse(place);
它的工作原理
然后,但它并不是最佳的解决方案恕我直言。
如何解决更多的菜刀方式这个问题?
你必须在JSON中引用撇号,这是没有办法的。但是,如果使用“\”定义对象,通常可以将其转义。或者,如果你愿意,unicode escape \ u0027(我认为)。 – StaxMan
你不能做到这一点,看看jsonlint.com和json.org –
你不能做什么?查看json规范。 – StaxMan