Parserfeil ved analyse av JSON i PHP
Ved hjelp av funksjonen json_last_error
kan man finne ut nøyaktig hvilken feil
som oppstod under parsing av JSON.
La oss se hvordan dette
gjøres. La oss si at vi har
en ugyldig JSON:
<?php
$json = '["a", "b", "c",]';
?>
La oss prøve å parse den:
<?php
$data = json_decode($json);
var_dump($data); // vil vise null
?>
Siden det oppstod en feil, vil json_last_error
ved kall returnere nummeret på denne feilen:
<?php
$error = json_last_error();
var_dump($error); // feilnummer
?>
Returnert nummer kan sammenlignes med spesielle PHP-konstanter. Basert på dette kan man skrive kode som fanger opp ulike feiltyper:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'ingen feil';
break;
case JSON_ERROR_DEPTH:
echo 'maksimal stakkdybde er nådd';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'ugyldige bits eller modusavvik';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'ugyldig kontrolltegn';
break;
case JSON_ERROR_SYNTAX:
echo 'syntaksfeil, ugyldig JSON';
break;
case JSON_ERROR_UTF8:
echo 'ugyldige UTF-8-tegn, kanskje feil kodet';
break;
default:
echo 'ukjent feil';
break;
}
?>
Gitt en streng med noe JSON. Analyser den til en PHP-datastruktur. Vis resultatet av analysen eller årsaken til feilen hvis det ikke lykkes å parse JSON.