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_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)

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

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