2015-10-11 8 views
0

В консоли Chrome, я печатаю:Как JSON.parse() десериализовать сериализованный объект JSON.stringify, содержащий стробированный объект?

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

+1

если вы собираетесь делать это в консоли, вам нужно сбежать "и \, как и" JSON.parse ("{\" a \ ": {\" a \ ": \" {\\\ " \\\ "\\\" а \\\ "} \"}} ")' –

ответ

2

ОК, я получил трюк ...

обратный слеш '\', это работает:

JSON.parse('{"a":{"a":"{\\"a\\":\\"a\\"}"}}') 
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

 Смежные вопросы

  • Нет связанных вопросов^_^