停止JSON.stringify添加转义字符

时间:2017-08-16 15:01:54

标签: javascript json

我有一个对象,

var obj = {};

我在哪里设置了一个属性

obj['prop'] = 'This is a "property"'

如何停止

JSON.stringify(obj)

返回

"This is a \"property\""

而是返回

"This is a "property""

理想情况下,有没有办法在我设置属性的地方执行此操作?即。

obj['prop'] = 'This is a "property"'

2 个答案:

答案 0 :(得分:2)

如果您真的想要这个,可以使用类似JSON.stringify(obj).replace(/\\/g,'')的内容。

小心:输出将不是有效的JSON,如果您有任何合法的数据,则可能会出现数据损失。 JSON中的反斜杠。

答案 1 :(得分:0)

正如评论中所解释的那样,您无法阻止双引号(")被转义,因为该字符是保留的(在规范中定义)。你可以做的是使用一种解决方法:使用单引号'来引用文本中的内容。

如果您仍想在此处看到双引号,那么它很难实现。将'替换为"是不够的,因为有些词自然地使用'。与it'sdon't

相同



const obj = {};

obj['myKey'] = "first word is 'Hello World'";
obj['anotherKey'] = "second word is 'Lorum Ispum'...";

console.log(JSON.stringify(obj));