Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mit „json_decode()' fehlerhafte JSON-Daten in PHP robust verarbeiten?

Wie kann ich mit „json_decode()' fehlerhafte JSON-Daten in PHP robust verarbeiten?

DDD
DDDOriginal
2024-11-23 11:24:11731Durchsuche

How Can I Robustly Handle Malformed JSON Data in PHP using `json_decode()`?

Umgang mit fehlerhaften JSON-Daten mit json_decode() von PHP

Beim Arbeiten mit JSON-Daten in PHP mithilfe von json_decode() ist es wichtig, ungültige Daten zu behandeln Daten, um unerwartete Fehler zu vermeiden. Der folgende Code zeigt einen gängigen Ansatz:

if (!json_decode($_POST)) {
  echo "bad json data!";
  exit;
}

Dieser Ansatz funktioniert zwar für einige ungültige JSON-Formate, erkennt jedoch keine Fehler, wenn die JSON-Daten keine Zeichenfolge sind. Um dieses Problem zu beheben, berücksichtigen Sie die folgenden Erkenntnisse:

  • json_decode() Verhalten: Es gibt null zurück, wenn ein Fehler vorliegt, auch wenn eine Zeichenfolge erwartet, aber ein Array empfangen wird.
  • Warnungen: json_decode() gibt Warnungen aus, wenn es auf ungültig stößt Daten.

Um beide Szenarien zu bewältigen, können Sie mehrere Strategien anwenden:

  1. Warnungen mit „@“ unterdrücken:
$_POST = ['invalid data'];
$data = @json_decode($_POST);

Diese Methode wird jedoch nicht empfohlen, da sie das Debuggen erschweren kann herausfordernd.

  1. Überprüfen Sie „json_last_error()“:
if ($data === null && json_last_error() !== JSON_ERROR_NONE) {
  echo "incorrect data";
}

Dieser Ansatz prüft auf Fehlercodes und behandelt sie entsprechend.

  1. Benutzerdefiniert Lösung:

Sie können eine benutzerdefinierte Funktion zur Validierung von JSON-Daten erstellen, die sowohl gültige JSON- als auch Nicht-String-Eingaben berücksichtigt.

Zusammenfassend lässt sich sagen, dass durch die Nutzung dieser Techniken Sie können fehlerhafte JSON-Daten in Ihren PHP-Anwendungen effektiv verarbeiten und so ein robusteres und fehlerfreieres Erlebnis gewährleisten.

Das obige ist der detaillierte Inhalt vonWie kann ich mit „json_decode()' fehlerhafte JSON-Daten in PHP robust verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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