Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mit „json_decode()' von PHP effektiv mit fehlerhaften JSON-Daten umgehen?

Wie kann ich mit „json_decode()' von PHP effektiv mit fehlerhaften JSON-Daten umgehen?

Susan Sarandon
Freigeben: 2024-11-18 18:59:02
Original
829 Leute haben es durchsucht

How Can I Effectively Handle Bad JSON Data with PHP's `json_decode()`?

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:

  • Es gibt die dekodierten Daten zurück oder null im Fehlerfall.
  • Es kann auch zurückgegeben werden null, wenn die JSON-Zeichenfolge null enthält.
  • Es werden Warnungen bei Fehlern ausgelöst.

Warnungen mit dem @-Operator unterdrücken

Um Warnungen zu unterdrücken , eine Möglichkeit ist die Verwendung des @-Operators:

$data = @json_decode($_POST);
Nach dem Login kopieren

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";
}
Nach dem Login kopieren

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!";
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage