json_validate
(PHP 8 >= 8.3.0)
json_validate — Verifica se uma string contém JSON válido
Descrição
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.
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 a2147483647
. 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
- json_decode() - Decodifica uma string JSON
- json_last_error() - Retorna o último erro ocorrido
- json_last_error_msg() - Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode()