(PHP 8 >= 8.3.0)
json_validate — Проверяет, содержит ли строка допустимые данные в JSON-формате
Функция проверяет, соответствует ли синтаксис входной строки (string) формату JSON, и возвращает результат.
Если функция json_validate() вернёт true
, функция json_decode()
успешно декодирует входную строку при передаче тех же аргументов
depth
и flags
.
Функции json_last_error() и json_last_error_msg()
укажут причину, если функция json_validate() вернёт false
.
Функция json_validate() использует меньше памяти, чем функция json_decode(), поскольку функции json_validate() не нужно декодировать полезную нагрузку JSON или создавать структуру массива или объекта, которая содержит полезную нагрузку.
Вызов функции json_validate() непосредственно перед функцией json_decode() приведёт к ненужному двойному разбору строки, поскольку функция json_decode() неявно выполняет такую проверку при декодировании.
Функцию json_validate() вызывают только в случае, когда данные декодирования полезной нагрузки JSON не нужны немедленно, и требуется знать, содержит ли строка допустимый JSON.
json
Строка для проверки.
Функция работает только со строками в кодировке UTF-8.
Замечание:
PHP реализует расширенный набор JSON, который описывает исходный стандарт » RFC 7159.
depth
Максимальная глубина вложенности структуры,
которую будет декодировать функция.
Значение должно быть больше 0
и меньше или равно 2 147 483 647
.
flags
Пока принимается только
константа JSON_INVALID_UTF8_IGNORE
.
Функция возвращает true
, если входная строка — синтаксически допустимый JSON,
иначе false
.
Выбрасывается исключение ValueError,
если значение параметра depth
выходит за пределы допустимого диапазона.
Если значение параметра flags
— недопустимый флаг,
выбрасывается исключение ValueError.
Пример #1 Пример использования функции json_validate()
<?php
var_dump(json_validate('{ "test": { "foo": "bar" } }'));
var_dump(json_validate('{ "": "": "" } }'));
?>
Результат выполнения приведённого примера:
bool(true) bool(false)