Maison >développement back-end >tutoriel php >Pourquoi y a-t-il des barres obliques inverses dans mes données codées en JSON ?
Échappements de barre oblique inverse dans l'encodage JSON
Lors de l'utilisation de json_encode pour convertir un tableau associatif en JSON, certains utilisateurs rencontrent un problème où les données encodées incluent des barres obliques inverses indésirables. Ce problème provient d'une inadéquation potentielle entre le processus d'encodage JSON et l'analyse ultérieure.
Cause première des barres obliques inverses
L'encodage JSON standard en PHP échappe aux caractères spéciaux, y compris les barres obliques inverses. , pour garantir l’intégrité des données. Cependant, si les données codées sont traitées ultérieurement par des fonctions JavaScript externes telles que .parseJSON, cela peut entraîner une double fuite involontaire.
Solution : option JSON_UNESCAPED_SLASHES
Pour résoudre Pour résoudre ce problème, vous pouvez spécifier explicitement l'option JSON_UNESCAPED_SLASHES comme deuxième paramètre de json_encode. Cette option indique à PHP de ne pas échapper aux barres obliques inverses pendant l'encodage, éliminant ainsi le problème de double échappement.
$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);
Ce code produira un JSON valide sans aucune barre oblique inverse supplémentaire :
{"logo_url":"http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg","img_id":"54","feedback":{"message":"File uploaded","success":true}}
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!