json_validate

(PHP 8 >= 8.3.0)

json_validateПроверяет, содержит ли строка допустимый JSON

Описание

json_validate(string $json, int $depth = 512, int $flags = 0): bool

Возвращает результат проверки соответствия формата входной строки (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)

Смотрите также

  • json_decode() - Декодирует строку JSON
  • json_last_error() - Возвращает последнюю ошибку
  • json_last_error_msg() - Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()