Задать вопрос
@SuperProshka

Почему не работает JSON.parse?

Добрый день!
У меня есть строка, которая содержит json с svg разметкой.
let text = `{"content":"<svg width=\"133\" height=\"510\" viewBox=\"0 0 133 510\">"}`
let data: any = null;
try {
   data = JSON.parse(text);
} catch (e) {
    debugger
}

При парсинге этой строки с помощью JSON.parse я получаю ошибку:
SyntaxError: Expected ',' or '}' after property value in JSON at position...

Судя по ошибке ему не нравится экранированные кавычки в svg разметке, но, насколько я понимаю, экранирование корректное.
Подскажите пожалуйста, как можно решить эту проблему?
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
- let text = `{"content":"<svg width=\"133\" height=\"510\" viewBox=\"0 0 133 510\">"}`
+ let text = '{"content":"<svg width=\\"133\\" height=\\"510\\" viewBox=\\"0 0 133 510\\">"}'

Как получить правильный JSON:
console.log(JSON.stringify({content: '<svg width="133" height="510" viewBox="0 0 133 510">'}))
// '{"content":"<svg width=\\"133\\" height=\\"510\\" viewBox=\\"0 0 133 510\\">"}'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы