Конвертировать в JS Object - PullRequest
0 голосов
/ 02 мая 2018

Как преобразовать это в объект JS:

{"info":["Image has been added"],"success":["No success Sorry!"]}

JSON.parse выдает ошибку и говорит, что & quot не является допустимым JSON. Я новичок в JS и не могу понять, как с этим справиться.

Я использую Connect-Flash из Express для передачи флэш-сообщений на клиентскую сторону. Для этого я использую следующий код:

if Object.keys(locals.flashes).length !== 0
    script.
      flashArr="#{JSON.stringify(locals.flashes)}"

На стороне клиента представление объекта недопустимо в формате JSON. Как я могу справиться с этим.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Как и предполагалось, вам необходимо проанализировать HTML-объекты в символы, то есть преобразовать " в ". Самый простой способ - использовать регулярное выражение:

var str = '{"info":["Image has been added"],"success":["No success Sorry!"]}';

var obj = JSON.parse(str.replace(/"/g,'"'));
console.log(obj);

Конечно, если в коде есть другие сущности HTML, может быть лучше использовать встроенный анализатор HTML:

var str = '{"info":["Image has been added"],"success":["No success Sorry!"]}';

var el = document.createElement('div');
el.innerHTML = str;

var obj = JSON.parse(el.textContent);
console.log(obj);

Но для отдельной сущности заменить , вероятно, быстрее и эффективнее.

0 голосов
/ 02 мая 2018

Как преобразовать это в объект JS?

Если я попытаюсь таким образом, он вернет мне действительный объект JS. Я просто глобально заменил " на "", используя String.prototyp.replace , а затем проанализировал его, используя JSON.parse () , например,

invalid_data = '{"info":["Image has been added"],"success":["No success Sorry!"]}';
valid_data = invalid_data.replace(/"/g, '"');
console.log(JSON.parse(valid_data));
...