如何JSON.parse()反序列化包含字符串化对象的JSON.stringify序列化对象?

时间:2015-10-11 05:00:27

标签: javascript json parsing json-deserialization stringify

在Chrome控制台中,我输入:

JSON.stringify({a:{a:'{"a":"a"}'}})

我得到了输出:

"{"a":{"a":"{\"a\":\"a\"}"}}"

我尝试通过以下方式反序列化:

JSON.parse('{"a":{"a":"{\"a\":\"a\"}"}}')

我收到错误:

Uncaught SyntaxError: Unexpected token a(…)

如何反序列化原始对象?

enter image description here

2 个答案:

答案 0 :(得分:2)

好的,我明白了......

逃避反斜杠' \',这有效:

JSON.parse('{"a":{"a":"{\\"a\\":\\"a\\"}"}}')

答案 1 :(得分:0)

只需使用变量:

var str = JSON.stringify({
  a: {
    a: '{"a":"a"}'
  }
});
console.log(str); //{"a":{"a":"{\"a\":\"a\"}"}}
console.log(JSON.parse(str));  //original object
console.log(JSON.parse('{"a":{"a":"{\"a\":\"a\"}"}}')); //error