„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 25.11.2024
Durchsuche:795

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 Falle eines Fehlers.
  • Es kann auch null zurückgeben, wenn die JSON-Zeichenfolge null enthält.
  • Es löst Warnungen bei Fehlern aus.

Unterdrücken von Warnungen mit dem @-Operator

Um Warnungen zu unterdrücken, besteht eine Möglichkeit darin, den @-Operator zu verwenden. Operator:

$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";
}

Benutzerdefinierte Fehlerbehandlung

Eine weitere Option 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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3