Предопределённые константы

Модуль определяет следующие константы и открывает доступ к ним только тогда, когда модуль либо собрали в 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.