Heim > Backend-Entwicklung > PHP-Tutorial > Warum fügt „json_encode' meiner JSON-Ausgabe unerwünschte Backslashes hinzu?

Warum fügt „json_encode' meiner JSON-Ausgabe unerwünschte Backslashes hinzu?

Linda Hamilton
Freigeben: 2024-11-13 00:41:01
Original
960 Leute haben es durchsucht

Why does `json_encode` add unwanted backslashes to my JSON output?

JSON-Rätsel: Backslash-Anomalien in json_encode aufdecken

Im Bereich der JSON-Datenkodierung ist die json_encode-Funktion seit langem ein vertrauenswürdiges Werkzeug. Allerdings haben jüngste Begegnungen eine rätselhafte Frage aufgeworfen: Warum fügt json_encode unerwünschte Backslashes hinzu?

Um diesem Rätsel auf den Grund zu gehen, schauen wir uns den bereitgestellten Code an:

print_r($result);
echo json_encode($result);
Nach dem Login kopieren

Der Befehl print_r zeigt die an assoziatives Array wie erwartet. Wenn json_encode angewendet wird, konvertiert es das Array in JSON, das gültig erscheint. Bei näherer Betrachtung tauchen jedoch versteckte Schrägstriche auf.

{
    "logo_url":"http:\/\/mysite.com\/uploads\/gallery\/7f\/3b\/f65ab8165d_logo.jpeg",
    "img_id":"54",
    "feedback":{"message":"File uploaded","success":true}
}
Nach dem Login kopieren

Warum diese überflüssigen Backslashes? Weiteres Debuggen enthüllt eine Wendung in der Geschichte. Die Anomalie tritt nicht in json_encode selbst auf, sondern im nachfolgenden parseJSON-Aufruf. Die Untersuchung der JavaScript-Daten mit data.toSource() deckt eine nicht JSON-kompatible Zeichenfolge auf:

({response:"{\"logo_url\":\"http:\/\/storelocator.com\/wp-content\/uploads\/gallery\/7f\/3b\/71b9520cfc91a90afbdbbfc9d2b2239b_logo.jpeg\",\"img_id\":\"62\",\"feedback\":{\"message\":\"File uploaded\",\"success\":true}}", status:200})
Nach dem Login kopieren

Die Lösung:

Der Schlüssel zur Lösung dieses Problems liegt bei der Angabe der Option „JSON_UNESCAPED_SLASHES“ für json_encode. Diese in PHP-Version 5.4 eingeführte Option verhindert effektiv, dass die Funktion Backslashes zu Schrägstrichen hinzufügt.

json_encode($array,JSON_UNESCAPED_SLASHES);
Nach dem Login kopieren

Mit diesem Wissen wird das Rätsel der unerwünschten Backslashes gelöst und eine nahtlose JSON-Kodierung ohne die eskapistischen Interferenzen ermöglicht !

Das obige ist der detaillierte Inhalt vonWarum fügt „json_encode' meiner JSON-Ausgabe unerwünschte Backslashes hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage