Umgang mit fehlerhaften JSON-Daten mit json_decode() in PHP
Beim Umgang mit JSON-Daten mit json_decode() ist es wichtig, mit ungültigen Daten umzugehen effektiv. Während das bereitgestellte Skript fehlerhaftes JSON für Zeichenfolgen wie { bar: "baz" } erkennen kann, kann es Daten, die keine Zeichenfolgen sind, wie „ungültige Daten“, nicht verarbeiten.
Grundlegendes zu json_decode()
Um dieses Problem zu beheben, ist es wichtig, json_decode() zu verstehen:
Warnungen mit dem @-Operator unterdrücken
Um Warnungen zu unterdrücken , eine Möglichkeit ist die Verwendung des @-Operators:
$data = @json_decode($_POST);
Dieser Ansatz unterdrückt die Warnung, erfordert jedoch zusätzliche Prüfungen zur Behandlung von Fehlern und Nullwerten:
if ($data === null && json_last_error() !== JSON_ERROR_NONE) { echo "Incorrect data"; }
Benutzerdefinierter Fehler Behandlung
Eine weitere Möglichkeit besteht darin, ein benutzerdefiniertes Fehlerbehandlungsskript zu erstellen:
function handle_json_error() { $error = json_last_error(); switch ($error) { case JSON_ERROR_NONE: return true; case JSON_ERROR_DEPTH: echo "Maximum depth exceeded"; break; case JSON_ERROR_STATE_MISMATCH: echo "Invalid or malformed JSON"; break; case JSON_ERROR_CTRL_CHAR: echo "Control character error"; break; case JSON_ERROR_SYNTAX: echo "Syntax error"; break; case JSON_ERROR_UTF8: echo "Malformed UTF-8 characters"; break; default: echo "Unknown error"; } return false; } if (!handle_json_error()) { echo "Bad JSON data!"; }
Dieses Skript stellt detaillierte Fehlermeldungen bereit und behandelt verschiedene JSON-Parsing-Fehler.
Das obige ist der detaillierte Inhalt vonWie kann ich mit „json_decode()' von PHP effektiv mit fehlerhaften JSON-Daten umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!