Maison >développement back-end >tutoriel php >Pourquoi y a-t-il des barres obliques inverses dans mes données codées en JSON ?

Pourquoi y a-t-il des barres obliques inverses dans mes données codées en JSON ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-11 07:19:03951parcourir

Why are there backslashes in my JSON encoded data?

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

Déclaration:
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