PHP - Função json_last_error ()
A função json_last_error () pode retornar o último erro ocorrido.
Sintaxe
int json_last_error( void )
A função json_last_error () pode retornar o último erro (se houver) ocorrido durante a última codificação / decodificação JSON.
A função json_last_error () pode retornar um número inteiro, e o valor pode ser uma das seguintes constantes:
- JSON_ERROR_NONE - Nenhum erro ocorreu
- JSON_ERROR_DEPTH - A profundidade máxima da pilha foi excedida
- JSON_ERROR_STATE_MISMATCH - JSON inválido ou malformado
- JSON_ERROR_CTRL_CHAR - Erro de caractere de controle, possivelmente codificado incorretamente
- JSON_ERROR_SYNTAX - Erro de sintaxe.
- JSON_ERROR_UTF8 - caracteres UTF-8 malformados, possivelmente codificados incorretamente
- JSON_ERROR_RECURSION - Uma ou mais referências recursivas no valor a ser codificado
- JSON_ERROR_INF_OR_NAN - Um ou mais valores NAN ou INF no valor a ser codificado
- JSON_ERROR_UNSUPPORTED_TYPE - Foi fornecido um valor de um tipo que não pode ser codificado
- JSON_ERROR_INVALID_PROPERTY_NAME - Foi fornecido um nome de propriedade que não pode ser codificado
- JSON_ERROR_UTF16 - caracteres UTF-16 malformados, possivelmente codificados incorretamente
Exemplo
<?php
// A valid json string
$json[] = '{"First Name": "Adithya"}';
// An invalid json string which causes an syntax
// error, in this case we used ' instead of " for quotation
$json[] = "{First Name': 'Adithya'}";
foreach($json as $string) {
echo "Decoding: " . $string;
json_decode($string);
switch(json_last_error()) {
case JSON_ERROR_NONE:
echo " - No errors";
break;
case JSON_ERROR_STATE_MISMATCH:
echo " - Underflow or the modes mismatch";
break;
case JSON_ERROR_DEPTH:
echo " - Maximum stack depth exceeded";
break;
case JSON_ERROR_CTRL_CHAR:
echo " - Unexpected control character found";
break;
case JSON_ERROR_SYNTAX:
echo " - Syntax error, malformed JSON";
break;
default:
echo " - Unknown error";
break;
}
echo PHP_EOL;
}
?>
Resultado
Decoding: {"First Name": "Adithya"} - No errors
Decoding: {First Name': 'Adithya'} - Syntax error, malformed JSON