Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt mein PHP „json_decode()' trotz gültigem JSON NULL zurück?
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!