Разбор сложной строки Json

#javascript #node.js

#javascript #node.js

Вопрос:

Я пытаюсь разобрать следующую строку JSON (не контролирую формат, я знаю, что это отвратительно).

     var json = '{"what.1.does":"anything", "nestedjsonstr":"{"whatup":"nada"}"}';
    obj = JSON.parse(json);
 

Я получаю Error: Unexpected token w in JSON at position 43 , с чего начинается первое значение nestedjsonstr . Есть ли какой-нибудь элегантный способ разобрать это?

Ответ №1:

Может быть, это может вам помочь. Вы заменяете фигурные скобки внутри своей строки без " , и удаляете .

 var json = '{"what.1.does":"anything", "nestedjsonstr":"{"whatup":"nada"}"}';

json = json.replace('"{', '{').replace('}"', '}').replace('\"', '"');

obj = JSON.parse(json);
console.log(obj); 

Комментарии:

1. Спасибо. Это работает. Достаточно ли безопасно очищать все управляющие символы (поскольку это очистило бы их во всей строке json)?

2. Может быть, попробовать json = json.replace('"{', '{').replace('}"', '}').replace('\"', '"') . Я отредактирую ответ