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);
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} }
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})
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);
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!