Следующие константы определяются модулем и доступны, только если модуль либо собрали в 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() при декодировании JSON-объекта в PHP, содержался ключ, который начинается с символа \u0000.
JSON_ERROR_UTF16
(int)
В JSON-строке, которую передали в функцию json_decode(), содержится экранированная Unicode-последовательность с одним непарным суррогатом из кодировки UTF-16.
JSON_ERROR_NON_BACKED_ENUM
(int)
Значение, которое передали в функцию json_encode(), включает нетипизированное перечисление, которые в PHP не сериализуются. Константа доступна с PHP 8.1.0.
Следующие константы передают в функцию 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)
Не кодировать многобайтовые символы Юникода, которые по умолчанию кодируются как последовательности \uXXXX.
JSON_PARTIAL_OUTPUT_ON_ERROR
(int)
Вместо прерывания с ошибкой замещает значения, которые невозможно закодировать, значением null.
JSON_PRESERVE_ZERO_FRACTION
(int)
Гарантирует, что значение, которое принадлежит типу 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)
С этим флагом вместо установки глобального состояния ошибки, которое извлекается функциями
json_last_error() и json_last_error_msg(),
функции кодирования и декодирования выбрасывают исключение JsonException,
если возникает ошибка.
Константа JSON_PARTIAL_OUTPUT_ON_ERROR приоритетнее константы
JSON_THROW_ON_ERROR. Константа доступна с PHP 7.3.0.