#javascript #json #parsing
#javascript #json #синтаксический анализ
Вопрос:
Нравится
JSON.parse('{"text": "~#"}');
выдаст ошибку synatax, потому что между ~ и # есть 0x0B . вы этого не видите, но оно существует.
Как этого избежать?
Комментарии:
1. Кодируйте эти символы в соответствии со спецификацией JSON.
2. @alex Я не могу контролировать ответ сервера
Ответ №1:
Если вы не можете получить данные, закодированные на сервере, то один из способов — предварительно обработать их в JSON перед попыткой декодирования. Вы могли бы, например, применить регулярное выражение следующим образом:
var data = JSON.parse('{"text": "~#"}'.replace(/([^dw"':,{}~#]|s) /g, ' '));
Очевидно, вы хотите очень внимательно следить за спецификацией при создании регулярного выражения.
Комментарии:
1. Отредактировано, чтобы выражение допускало пробелы. Однако это добавит, возможно, нежелательное пространство.