在Chrome控制台中,我输入:
JSON.stringify({a:{a:'{"a":"a"}'}})
我得到了输出:
"{"a":{"a":"{\"a\":\"a\"}"}}"
我尝试通过以下方式反序列化:
JSON.parse('{"a":{"a":"{\"a\":\"a\"}"}}')
我收到错误:
Uncaught SyntaxError: Unexpected token a(…)
如何反序列化原始对象?
答案 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