JSON解析字符串文字中的双引号

时间:2015-04-02 15:17:30

标签: javascript json

我在解析字符串文字中的引号时遇到问题。

var lit = '{"foo":"test \"1\"","bar":"test 2"}';

在控制台中,这会出现错误' Uncaught exception'。 我期待着:

Object {foo: "test "1"", bar: "test 2"}

这是我的小提琴https://jsfiddle.net/bruceradtke/kor8amm5/4/

如果我将stringify结果分配给变量,那么它可以正常工作 解析该变量。但是如果我像上面那样使用字符串文字,那就不行了。

感谢。

我的代码:

var myobject = {};
myobject.foo = "test \"1\"";
myobject.bar = "test 2";

var sresult = JSON.stringify(myobject);
console.log('stringify=' + sresult);
// OK
var thaw = JSON.parse(sresult);
console.log( thaw);

var lit = '{"foo":"test \"1\"","bar":"test 2"}';
console.log(lit);
// Broken
var thaw2 = JSON.parse(lit);

1 个答案:

答案 0 :(得分:9)

请记住,您正在转义两个字符串文字:一个用于声明属性,另一个用于声明变量(lit)。所以你需要逃避你的逃脱角色:"test \\"1\\""



var lit = '{"foo":"test \\"1\\"","bar":"test 2"}';
console.log(lit);

var thaw2 = JSON.parse(lit);