Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt mein PHP „json_decode()' trotz gültigem JSON NULL zurück?

Warum gibt mein PHP „json_decode()' trotz gültigem JSON NULL zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-27 03:52:09731Durchsuche

Why Does My PHP `json_decode()` Return NULL Despite Valid JSON?

PHP json_decode()-Dekodierungsproblem mit scheinbar gültigem JSON

Beim Versuch, JSON, das in einer Klartextdatei gespeichert ist, mithilfe der json_decode-Funktion in PHP zu dekodieren stoßen einige Benutzer trotz der scheinbaren Gültigkeit des JSON auf unerklärliche NULL-Rückgaben Struktur.

Der betroffene JSON-Code entspricht häufig den JSON-Schema-Validierungsstandards und besteht strenge Tests auf Plattformen wie http://jsonlint.com/. Bei der Dekodierung des JSON in PHP bleibt es jedoch schwer zu fassen.

Um dieses Problem zu beheben, sollten Sie die folgende Codezeile in Ihren Dekodierungsprozess integrieren:

json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), true);

Dieser modifizierte json_decode-Aufruf ersetzt alle unsichtbaren oder nicht druckbaren Zeichen in der JSON-Zeichenfolge (z. B. Steuerzeichen, illegale UTF-8-Zeichen oder Sonderzeichen) mit einer leeren Zeichenfolge. Diese Zeichen können bei der Dekodierung zu Unstimmigkeiten führen und zu NULL-Rückgaben führen.

Durch das Herausfiltern solcher Zeichen stellt der geänderte Code sicher, dass die json_decode-Funktion den JSON-String genau analysieren kann, sodass eine gültige PHP-Darstellung zurückgegeben werden kann JSON-Daten.

Das obige ist der detaillierte Inhalt vonWarum gibt mein PHP „json_decode()' trotz gültigem JSON NULL zurück?. 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