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
902 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!

source:php.cn
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