PHP - Funzione json_last_error ()
La funzione json_last_error () può restituire l'ultimo errore occorso.
Sintassi
int json_last_error( void )
La funzione json_last_error () può restituire l'ultimo errore (se presente) verificatosi durante l'ultima codifica / decodifica JSON.
La funzione json_last_error () può restituire un numero intero e il valore può essere una delle seguenti costanti:
- JSON_ERROR_NONE - Non si è verificato alcun errore
- JSON_ERROR_DEPTH - La profondità massima dello stack è stata superata
- JSON_ERROR_STATE_MISMATCH: JSON non valido o non valido
- JSON_ERROR_CTRL_CHAR - Errore di carattere di controllo, probabilmente codificato in modo errato
- JSON_ERROR_SYNTAX - Errore di sintassi.
- JSON_ERROR_UTF8 - Caratteri UTF-8 non corretti, probabilmente codificati in modo errato
- JSON_ERROR_RECURSION: uno o più riferimenti ricorsivi nel valore da codificare
- JSON_ERROR_INF_OR_NAN: uno o più valori NAN o INF nel valore da codificare
- JSON_ERROR_UNSUPPORTED_TYPE - È stato fornito un valore di un tipo che non può essere codificato
- JSON_ERROR_INVALID_PROPERTY_NAME - È stato fornito un nome di proprietà che non può essere codificato
- JSON_ERROR_UTF16 - Caratteri UTF-16 non corretti, probabilmente codificati in modo errato
Esempio
<?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;
}
?>
Produzione
Decoding: {"First Name": "Adithya"} - No errors
Decoding: {First Name': 'Adithya'} - Syntax error, malformed JSON