Есть текст(из БД), который нужно превратить в json. пример
$text = '[{"val":"4"}]';
$f = json_decode($text);
Все получилось, но если в нем встречается обратный слеш \
то все ломается. пример
$text = '[{"val":"4\4"}]';
$f = json_decode($text);
Нашел выход в функции stripslashes
Но это не особо подходит, т.к. она удаляет \
. пример
Есть другой выход с сохранения \
?
У вас некорректно закодирован JSON (либо передан с ошибкой).
По спецификации JSON в строке после символа \
не может стоять число 4. После \
допустимо использовать только:
"
- кавычка, просто экранирование кавычки\
- обратный слеш - экранирование для самого себя для однозначного распознавания символьных последовательностей с особым значением в строках/
- прямойb
- символ backspace
n
- символ line feed
(перевод строки)r
- символ carriage return
(возврат каретки)t
- символ табуляцииu
с последующими 4 HEX символами, обозначает соответствующий символ Unicode (этой формой записи допустимо заменить вышеуказанные символы, впрочем)Так, \4
это некорректная запись.
Такой JSON не принимают ни парсер PHP, ни проверенный мной парсер в PostgreSQL. Его пытается обработать парсер JS в firefox
, но не уверен по каким правилам. Cам JSON от этого корректным не станет.
Корректная запись должна быть:
[{"val":"4\\4"}]
И лучше здесь вам обратиться к источнику вашего JSON с вопросом почему он сформирован некорректно чем пытаться исправлять последствия.
Спец символы JSON
\b Backspace (ascii code 08)
\f Form feed (ascii code 0C)
\n New line
\r Carriage return
\t Tab
\" Double quote
\\ Backslash character
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите пожалуйста, как задать LIMIT, чтобы вывести на страницу определённое количество записейВот так не работает:
Перерыл все, что можно, но внятного ответа так и не нашелЗадача в следующем
Пытаюсь редактировать файл commoncss, но не позволяет, выдвигая следующую ошибку: