Parserfejl ved parsing af JSON i PHP
Ved hjælp af funktionen json_last_error
kan man finde ud af, hvilken specifik fejl
der opstod under parsing af JSON.
Lad os se, hvordan det
gøres. Lad os antage, at vi har
ugyldig JSON:
<?php
$json = '["a", "b", "c",]';
?>
Lad os prøve at parse den:
<?php
$data = json_decode($json);
var_dump($data); // vil udskrive null
?>
Da der opstod en fejl, vil json_last_error
ved kald returnere nummeret på denne fejl:
<?php
$error = json_last_error();
var_dump($error); // fejlnummer
?>
Det returnerede nummer kan sammenlignes med specielle PHP-konstanter. På baggrund af dette kan man skrive kode, der fanger forskellige fejltyper:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'ingen fejl';
break;
case JSON_ERROR_DEPTH:
echo 'maksimal stakdybde er nået';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'ugyldige bits eller modus-uoverensstemmelse';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'ugyldigt kontroltegn';
break;
case JSON_ERROR_SYNTAX:
echo 'syntaksfejl, ugyldig JSON';
break;
case JSON_ERROR_UTF8:
echo 'ugyldige UTF-8-tegn, muligvis forkert kodet';
break;
default:
echo 'ukendt fejl';
break;
}
?>
Der gives en streng med noget JSON. Pars den til en PHP-datastruktur. Udskriv resultatet af parsing eller årsagen til fejlen, hvis det ikke lykkedes at parse JSON.