Pourquoi « json_encode » ajoute-t-il des barres obliques inverses à mes données JSON ?

Patricia Arquette
Libérer: 2024-11-11 16:46:03
original
628 Les gens l'ont consulté

Why Does `json_encode` Add Backslashes to My JSON Data?

Pourquoi Json_encode ajoute-t-il des barres obliques inverses ?

Lors de l'utilisation de json_encode dans un script de téléchargement de fichier, il a été découvert que les données JSON résultantes contiennent des des barres obliques inverses. Cela soulève la question de savoir pourquoi json_encode introduit ces échappements.

L'option JSON_UNESCAPED_SLASHES

La réponse réside dans une option spécifique disponible dans json_encode. Par défaut, json_encode échappe certains caractères, y compris les barres obliques (antislashes), pour garantir que le JSON généré reste valide. Cependant, dans certains cas, comme lorsqu'il s'agit d'URL comme celle fournie, ces échappements peuvent être indésirables.

Pour résoudre ce problème, l'option JSON_UNESCAPED_SLASHES a été introduite dans PHP version 5.4. Lorsqu'elle est utilisée, cette option demande à json_encode d'éviter d'échapper des barres obliques, résolvant ainsi efficacement le problème en question.

Modification du code

Pour implémenter la solution, incorporez simplement la constante JSON_UNESCAPED_SLASHES comme un deuxième paramètre dans la fonction json_encode. Le code modifié devrait ressembler à ceci :

echo json_encode($result, JSON_UNESCAPED_SLASHES); // <-- Adds the JSON_UNESCAPED_SLASHES option
Copier après la connexion

Cela garantit que le JSON résultant ne contient aucune barre oblique inverse inutile, fournissant ainsi le résultat souhaité :

{
  "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

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