Maison > développement back-end > tutoriel php > Pourquoi « json_encode » ajoute-t-il des barres obliques inverses indésirables à ma sortie JSON ?

Pourquoi « json_encode » ajoute-t-il des barres obliques inverses indésirables à ma sortie JSON ?

Linda Hamilton
Libérer: 2024-11-13 00:41:01
original
1168 Les gens l'ont consulté

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

L'énigme JSON : résoudre les anomalies de barre oblique inverse dans json_encode

Dans le domaine du codage de données JSON, la fonction json_encode est depuis longtemps un outil de confiance. Cependant, des rencontres récentes ont soulevé une question déroutante : pourquoi json_encode ajoute-t-il des barres obliques inverses indésirables ?

Pour approfondir cette énigme, examinons le code fourni :

print_r($result);
echo json_encode($result);
Copier après la connexion

La commande print_r affiche le tableau associatif comme prévu. Lorsque json_encode est appliqué, il convertit le tableau en JSON, qui semble valide. Cependant, après une inspection plus approfondie, des barres obliques cachées apparaissent.

{
    "logo_url":"http:\/\/mysite.com\/uploads\/gallery\/7f\/3b\/f65ab8165d_logo.jpeg",
    "img_id":"54",
    "feedback":{"message":"File uploaded","success":true}
}
Copier après la connexion

Pourquoi ces barres obliques inverses superflues ? Un débogage plus poussé révèle une tournure dans l'histoire. L'anomalie ne se produit pas dans json_encode lui-même, mais dans l'appel parseJSON suivant. L'examen des données JavaScript à l'aide de data.toSource() révèle une chaîne non conforme à JSON :

({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})
Copier après la connexion

La solution :

La clé pour résoudre ce problème réside en spécifiant l'option "JSON_UNESCAPED_SLASHES" à json_encode. Introduite dans PHP version 5.4, cette option empêche efficacement la fonction d'ajouter des barres obliques inverses aux barres obliques.

json_encode($array,JSON_UNESCAPED_SLASHES);
Copier après la connexion

Armé de cette connaissance, le mystère des barres obliques inverses indésirables est résolu, permettant un encodage JSON transparent sans interférences d'évasion. !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal