Обумовлені константи
Наведені нижче константи визначені цим модулем і доступні або в збірках 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
, то замість зазначених особливих значень буде виведено
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.