JSON.stringify没有逃脱?

时间:2011-03-31 20:35:48

标签: javascript json escaping

我正在使用`JSON.stringify?字符串化一个对象,但引号不转义?我误解了它是否想逃避报价?

这将输出到模板中,而不会转义任何引号:

{"console":{"free":false}}

4 个答案:

答案 0 :(得分:23)

它不会转义字符,不会有encodeURIComponent,你可以一起使用它们,就像encodeURIComponent(JSON.stringify(obj))

一样

答案 1 :(得分:8)

将对象字符串化两次做法

console.log(JSON.stringify(JSON.stringify({"console":{"free":false}})));
// "{\"console\":{\"free\":false}}"

答案 2 :(得分:6)

如果没有违规代码进行检查,我想知道是否还有其他事情发生。作为测试...

<div id="test"/>

var ex = {'test':'This is "text".'};

$('#test').text(JSON.stringify(ex));

输出{"test":"This is \"text\"."}(&lt;注意转义的双引号)

http://jsfiddle.net/userdude/YVGbH/

答案 3 :(得分:6)

属性名称周围的引号不应该被转义,只能在字符串内引用。你的JSON没问题:)