Parserfel vid tolkning av JSON i PHP
Med funktionen json_last_error
kan du ta reda på vilket specifikt fel
som uppstod vid parsning av JSON.
Låt oss se hur detta
görs. Låt oss säga att vi har
en felaktig JSON:
<?php
$json = '["a", "b", "c",]';
?>
Låt oss försöka tolka den:
<?php
$data = json_decode($json);
var_dump($data); // kommer att visa null
?>
Eftersom ett fel uppstod kommer json_last_error
när den anropas att ge numret på detta fel:
<?php
$error = json_last_error();
var_dump($error); // felnummer
?>
Det returnerade numret kan jämföras med speciella PHP-konstanter. Baserat på detta kan du skriva kod som fångar olika typer av fel:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'inga fel';
break;
case JSON_ERROR_DEPTH:
echo 'maximal stackdjup har uppnåtts';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'ogiltiga bitar eller mode mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'ogiltig kontrolltecken';
break;
case JSON_ERROR_SYNTAX:
echo 'syntaxfel, ogiltig JSON';
break;
case JSON_ERROR_UTF8:
echo 'ogiltiga UTF-8-tecken, möjligen felkodade';
break;
default:
echo 'okänt fel';
break;
}
?>
Given en sträng med viss JSON. Tolka den till en PHP-datastruktur. Skriv ut resultatet av tolkningen eller orsaken till felet om tolkning av JSON misslyckades.