Maison  >  Article  >  développement back-end  >  Pourquoi « json_encode » ajoute-t-il des barres obliques inverses à mes données JSON ?

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

Patricia Arquette
Patricia Arquetteoriginal
2024-11-11 16:46:03656parcourir

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

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
  }
}

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