Parserfehler beim Parsen von JSON in PHP
Mit der Funktion json_last_error
kann man herausfinden, welcher Fehler
beim Parsen von JSON genau aufgetreten ist.
Schauen wir uns an, wie das
gemacht wird. Nehmen wir an, wir haben
einen ungültigen JSON:
<?php
$json = '["a", "b", "c",]';
?>
Versuchen wir, ihn zu parsen:
<?php
$data = json_decode($json);
var_dump($data); // gibt null aus
?>
Da ein Fehler aufgetreten ist, wird json_last_error
bei Aufruf die Nummer dieses Fehlers zurückgeben:
<?php
$error = json_last_error();
var_dump($error); // Fehlernummer
?>
Die zurückgegebene Nummer kann mit speziellen PHP-Konstanten verglichen werden. Basierend darauf kann man Code schreiben, der verschiedene Fehlertypen abfängt:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'Keine Fehler';
break;
case JSON_ERROR_DEPTH:
echo 'Maximale Stacktiefe erreicht';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'Ungültiges oder nicht übereinstimmendes Modus';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'Ungültiges Steuerzeichen';
break;
case JSON_ERROR_SYNTAX:
echo 'Syntaxfehler, ungültiges JSON';
break;
case JSON_ERROR_UTF8:
echo 'Ungültige UTF-8 Zeichen, möglicherweise falsch kodiert';
break;
default:
echo 'Unbekannter Fehler';
break;
}
?>
Gegeben ist ein String mit einem JSON. Parsen Sie ihn in eine PHP-Datenstruktur. Geben Sie das Ergebnis des Parsens oder die Fehlerursache aus, falls das Parsen des JSON nicht erfolgreich war.