Errori del parser durante l'analisi di JSON in PHP
Con la funzione json_last_error
puoi scoprire esattamente quale errore
si è verificato durante l'analisi del JSON.
Diamo un'occhiata a come
si fa. Supponiamo di avere
un JSON non valido:
<?php
$json = '["a", "b", "c",]';
?>
Proviamo ad analizzarlo:
<?php
$data = json_decode($json);
var_dump($data); // restituirà null
?>
Poiché si è verificato un errore, json_last_error
quando chiamata restituirà il codice di questo errore:
<?php
$error = json_last_error();
var_dump($error); // codice errore
?>
Il codice restituito può essere confrontato con costanti speciali di PHP. Su questa base, puoi scrivere codice che catturi diversi tipi di errori:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'nessun errore';
break;
case JSON_ERROR_DEPTH:
echo 'massima profondità dello stack raggiunta';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'bit non validi o mancata corrispondenza della modalità';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'carattere di controllo non valido';
break;
case JSON_ERROR_SYNTAX:
echo 'errore di sintassi, JSON non valido';
break;
case JSON_ERROR_UTF8:
echo 'caratteri UTF-8 non validi, forse codificati in modo errato';
break;
default:
echo 'errore sconosciuto';
break;
}
?>
Data una stringa con un certo JSON. Analizzala in una struttura dati PHP. Stampa il risultato dell'analisi o la causa dell'errore se l'analisi del JSON non è riuscita.