停止JSON.stringify从添加转义字符
问题描述:
我有一个对象,停止JSON.stringify从添加转义字符
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"'
答
正如在评论中所解释的那样,您不能防止双引号("
)被转义,因为该字符是保留的(在规范中定义)。你可以做的是使用变通方法:使用单引号'
来引用文本中的某些内容。
如果你还想在这里看到一个双引号,那么这是很难实现的。将'
替换为"
是不够的,因为有自然使用'
的词。像it's
或don't
const obj = {};
obj['myKey'] = "first word is 'Hello World'";
obj['anotherKey'] = "second word is 'Lorum Ispum'...";
console.log(JSON.stringify(obj));
好,为什么会有这样的要求,我是否可以? – kukkuz
那么,毕竟你不想要有效的JSON?然后不要使用JSON序列化程序。 – deceze
JSON规范保留用于定义键和值的''',一个有效的JSON将会转义该值中的字符。 –