(PHP 8 >= 8.3.0)
json_validate — Verifica se uma string contém JSON válido
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.
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.
json
A string a ser validada.
Esta função funciona somente com strings codificadas com UTF-8.
Nota:
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.
Retorna true
se a string fornecida for um JSON válido sintaticamente, caso contrário
retorna false
.
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.
Exemplo #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)