Barres obliques inverses inattendues dans la sortie JSON avec json_encode
En travaillant avec json_encode pour renvoyer des données JSON après le téléchargement d'un fichier, certains utilisateurs ont rencontré l'ajout de barres obliques inverses inutiles dans la sortie. Pour approfondir ce problème, décomposons le problème :
L'extrait de code initial, qui produit un JSON valide :
print_r($result); echo json_encode($result);
Cependant, après un examen plus approfondi via data.toSource(), il est a révélé qu'un JSON non valide est en cours de production, avec des barres obliques inverses ajoutées et des informations supplémentaires (par exemple, status : 200) en annexe.
Cause du problème
Les barres obliques inverses supplémentaires et les informations superflues sont probablement introduites par un processus extérieur à json_encode lui-même. On suppose que la fonction de liaison Plupload pourrait manipuler les données renvoyées d'une manière ou d'une autre.
Solution
Pour résoudre ce problème, il est recommandé d'inclure l'option "JSON_UNESCAPED_SLASHES". lors de l'utilisation de json_encode. Cette option, introduite dans PHP version 5.4 et ultérieure, empêche l'ajout inutile de barres obliques inverses. Le code corrigé :
json_encode($array, JSON_UNESCAPED_SLASHES);
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!