json_validate

(PHP 8 >= 8.3.0)

json_validateVerifica se uma string contém JSON válido

Descrição

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

Retorna se a string informada é um JSON válido sintaticamente. Se json_validate() retornar true, json_decode() irá decodificar com sucesso a string informada ao usar a mesma profundidade de depth e as opções em flags.

Se json_validate() retornar false, a causa pode ser obtida usando json_last_error() e json_last_error_msg().

json_validate() usa menos memória que json_decode() se o JSON decodificado não for usado, porque ela não precisa construir o array ou a estrutura de objeto que contém a decodificação.

Caution

Chamar json_validate() imediatamente antes de json_decode() irá analisar a string duas vezes desnecessariamente, já que json_decode() implicitamente realiza a validação durante a decodificação.

Portanto, json_validate() deve somente ser utilizada se o JSON decodificado não for usado imediatamente e se for necessário saber se a string contém JSON válido.

Parâmetros

json

A string a ser validada.

Esta função funciona somente com strings codificadas com UTF-8.

Note:

O PHP implementa um superconjunto de JSON conforme especificado na » RFC 7159 original.

depth

A máxima profundidade de aninhamento da estrutura sendo decodificada. O valor precisa ser maior que 0, e menor ou igual a 2147483647.

flags

Atualmente apenas a constante JSON_INVALID_UTF8_IGNORE é aceita.

Valor Retornado

Retorna true se a string fornecida for um JSON válido sintaticamente, caso contrário retorna false.

Erros/Exceções

Se depth estiver fora do intervalo permitido, uma exceção ValueError é lançada.

Se flags não for uma opção válida, uma exceção ValueError é lançada.

Exemplos

Example #1 Exemplos de json_validate()

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

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também