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