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