Checks if a string contains valid JSON

- « json_last_error

- Simdjson »

- PHP Manual
- JSON Functions
- Checks if a string contains valid JSON

# json_validate

(PHP 8 >= 8.3.0)

json_validate — Checks if a string contains valid JSON

### Description

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.

Caution

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.

### Parameters

`json`

  The string to validate.

  This function only works with UTF-8 encoded strings.

  > Note:

  > PHP implements a superset of JSON as specified in the original » RFC 7159.

`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.

### Return Values

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

### Errors/Exceptions

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

### Examples

Example #1 json_validate() examples

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

The above example will output:

    bool(true)
    bool(false)

### See Also

- json_decode() - Decodes a JSON string
- json_last_error() - Returns the last error occurred
- json_last_error_msg() - Returns the error string of the last json_encode() or json_decode() call