json_validate

(PHP 8 >= 8.3.0)

json_validateChecks if a string contains valid JSON

Beschreibung

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

Returns whether the given String is syntactically valid JSON. If json_validate() returns true, json_decode() will successfully decode the given string when using the same depth and flags.

If json_validate() returns false, the cause can be retrieved using json_last_error() and json_last_error_msg().

json_validate() uses less memory than json_decode() if the decoded JSON payload is not used, because it does not need to build the array or object structure containing the payload.

Achtung

Calling json_validate() immediately before json_decode() will unnecessarily parse the string twice, as json_decode() implicitly performs validation during decoding.

json_validate() should therefore only be used if the decode JSON payload is not immediately used and knowing whether the string contains valid JSON is needed.

Parameter-Liste

json

The string to validate.

This function only works with UTF-8 encoded strings.

Hinweis:

PHP implementiert eine Obermenge von JSON wie im Original » RFC 7159 beschrieben.

depth

Maximum nesting depth of the structure being decoded. The value must be greater than 0, and less than or equal to 2147483647.

flags

Currently only JSON_INVALID_UTF8_IGNORE is accepted.

Rückgabewerte

Returns true if the given string is syntactically valid JSON, otherwise returns false.

Fehler/Exceptions

If depth is outside the allowed range, a ValueError is thrown.

If flags is not a valid flag, a ValueError is thrown.

Beispiele

Beispiel #1 json_validate() examples

<?php
var_dump
(json_validate('{ "test": { "foo": "bar" } }'));
var_dump(json_validate('{ "": "": "" } }'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true) bool(false)

Siehe auch

To Top