Unerwartete Backslashes in der JSON-Ausgabe mit json_encode
Bei der Arbeit mit json_encode zur Rückgabe von JSON-Daten nach einem Datei-Upload sind bestimmte Benutzer auf den Zusatz gestoßen von unnötigen Backslashes in der Ausgabe. Um dieses Problem genauer zu untersuchen, wollen wir das Problem aufschlüsseln:
Das anfängliche Code-Snippet, das gültiges JSON erzeugt:
print_r($result); echo json_encode($result);
Bei weiterer Untersuchung durch data.toSource() ist es jedoch so hat ergeben, dass ungültiges JSON erstellt wird, mit hinzugefügten Backslashes und zusätzlichen Informationen (z. B. Status:200) angehängt.
Ursache des Problems
Die zusätzlichen Backslashes und irrelevanten Informationen werden wahrscheinlich durch einen Prozess außerhalb von json_encode selbst eingeführt. Es wird vermutet, dass die Plupload-Bindungsfunktion die zurückgegebenen Daten auf irgendeine Weise manipuliert.
Lösung
Um dieses Problem zu beheben, wird empfohlen, die Option „JSON_UNESCAPED_SLASHES“ einzubeziehen bei Verwendung von json_encode. Diese ab PHP-Version 5.4 eingeführte Option verhindert, dass unnötigerweise Backslashes hinzugefügt werden. Der korrigierte Code:
json_encode($array, JSON_UNESCAPED_SLASHES);
Das obige ist der detaillierte Inhalt vonWarum erhalte ich mit json_encode unerwartete Backslashes in meiner JSON-Ausgabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!