Backslash-Escapes bei der JSON-Codierung
Bei der Verwendung von json_encode zum Konvertieren eines assoziativen Arrays in JSON stoßen einige Benutzer auf ein Problem, bei dem die codierten Daten Folgendes enthalten: unerwünschte Backslashes. Dieses Problem ist auf eine potenzielle Diskrepanz zwischen dem JSON-Kodierungsprozess und der anschließenden Analyse zurückzuführen.
Grundursache für Backslashes
Die Standard-JSON-Codierung in PHP maskiert Sonderzeichen, einschließlich Backslashes , um die Datenintegrität sicherzustellen. Wenn die codierten Daten jedoch durch externe JavaScript-Funktionen wie .parseJSON weiterverarbeitet werden, kann es zu unbeabsichtigtem Double-Escaped kommen.
Lösung: Option JSON_UNESCAPED_SLASHES
Zu lösen Bei diesem Problem können Sie die Option JSON_UNESCAPED_SLASHES explizit als zweiten Parameter von json_encode angeben. Diese Option weist PHP an, Backslashes während der Codierung nicht zu maskieren, wodurch das Problem der doppelten Escapezeichen beseitigt wird.
$result = [ 'logo_url' => 'http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg', 'img_id' => 54, 'feedback' => [ 'message' => 'File uploaded', 'success' => 1 ] ]; echo json_encode($result, JSON_UNESCAPED_SLASHES);
Dieser Code gibt gültiges JSON ohne zusätzliche Backslashes aus:
{"logo_url":"http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg","img_id":"54","feedback":{"message":"File uploaded","success":true}}
Das obige ist der detaillierte Inhalt vonWarum sind in meinen JSON-codierten Daten Backslashes enthalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!