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