Предопределённые константы
Модуль определяет перечисленные ниже константы и открывает к ним доступ только тогда, когда модуль либо собрали в PHP, либо динамически загрузили во время исполнения кода.
Следующие константы указывают на тип ошибки, которую возвращает функция json_last_error() или которая хранится в свойстве code объекта исключения JsonException.
JSON_ERROR_NONE
(int) - Не произошло никаких ошибок.
JSON_ERROR_DEPTH
(int) - Была превышена максимальная глубина стека.
JSON_ERROR_STATE_MISMATCH
(int) - Неверный или повреждённый JSON.
JSON_ERROR_CTRL_CHAR
(int) - Ошибка управляющих символов, вероятно, из-за неверного кодирования.
JSON_ERROR_SYNTAX
(int) - Синтаксическая ошибка.
JSON_ERROR_UTF8
(int) - Повреждённые символы UTF-8, вероятно, из-за неверного кодирования.
JSON_ERROR_RECURSION
(int) - Объект или массив, переданный в функцию json_encode() включает рекурсивные ссылки и не может быть закодирован. Если была передана опция
JSON_PARTIAL_OUTPUT_ON_ERROR
, то на месте рекурсивных ссылок будет выведен null
. JSON_ERROR_INF_OR_NAN
(int) - Значение, переданное в функцию json_encode(), включает либо
NAN
, либо INF
. Если была указана константа JSON_PARTIAL_OUTPUT_ON_ERROR
, то вместо указанных особых значений будет выведен 0
. JSON_ERROR_UNSUPPORTED_TYPE
(int) - В функцию json_encode() было передано значение неподдерживаемого типа, например, resource. Если была указана константа
JSON_PARTIAL_OUTPUT_ON_ERROR
, то вместо неподдерживаемого значения будет выводиться null
. JSON_ERROR_INVALID_PROPERTY_NAME
(int) - В строке переданной в json_decode() был ключ, начинающийся с символа \u0000.
JSON_ERROR_UTF16
(int) - Один непарный суррогат UTF-16 в экранированной последовательности Unicode в строке JSON, переданной в json_decode().
Можно комбинировать следующие константы для передачи в json_decode().
JSON_BIGINT_AS_STRING
(int) - Декодирует большие целые числа в качестве исходного значения строки.
JSON_OBJECT_AS_ARRAY
(int) - Преобразовывает объекты JSON в массив PHP. Эта опция может быть задана автоматически, если вызвать функцию json_decode(), указав вторым параметром значение
true
.
Следующие константы можно комбинировать для использования в json_encode().
JSON_HEX_TAG
(int) - Все < и > кодируются в \u003C и \u003E.
JSON_HEX_AMP
(int) - Все & кодируются в \u0026.
JSON_HEX_APOS
(int) - Все символы ' кодируются в \u0027.
JSON_HEX_QUOT
(int) - Все символы " кодируются в \u0022.
JSON_FORCE_OBJECT
(int) - Выдавать объект вместо массива при использовании неассоциативного массива. Это полезно, когда принимающая программа или код ожидают объект, а массив пуст.
JSON_NUMERIC_CHECK
(int) - Кодирование строк, содержащих числа, как числа.
JSON_PRETTY_PRINT
(int) - Использовать пробельные символы в возвращаемых данных для их форматирования.
JSON_UNESCAPED_SLASHES
(int) - Не экранировать
/
. JSON_UNESCAPED_UNICODE
(int) - Не кодировать многобайтовые символы Unicode (по умолчанию они кодируются как \uXXXX).
JSON_PARTIAL_OUTPUT_ON_ERROR
(int) - Позволяет избежать возникновения ошибок при использовании функции json_encode. Осуществляет подстановку значений по умолчанию вместо некодируемых.
JSON_PRESERVE_ZERO_FRACTION
(int) - Гарантирует, что значение типа float будет преобразовано именно в значение типа float в случае, если дробная часть равна 0.
JSON_UNESCAPED_LINE_TERMINATORS
(int) - Символы конца строки не будут экранироваться, если задана константа
JSON_UNESCAPED_UNICODE
. Поведение будет таким же, какое оно было до PHP 7.1 без этой константы. Доступно с PHP 7.1.0.
Следующие константы можно комбинировать для использования в json_decode() и json_encode().
JSON_INVALID_UTF8_IGNORE
(int) - Игнорировать некорректные символы UTF-8. Доступно с PHP 7.2.0.
JSON_INVALID_UTF8_SUBSTITUTE
(int) - Преобразовывать некорректные символы UTF-8 в \0xfffd (Символ Юникода 'REPLACEMENT CHARACTER') Доступно с PHP 7.2.0.
JSON_THROW_ON_ERROR
(int) - Выбрасывается исключение JsonException в случае возникновения ошибок вместо установки глобального состояния ошибки, которое может быть получено с помощью функции json_last_error() и json_last_error_msg(). Константа
JSON_PARTIAL_OUTPUT_ON_ERROR
имеет приоритет над JSON_THROW_ON_ERROR
. Доступно с PHP 7.3.0.