Maison >développement back-end >tutoriel php >Pourquoi `json_decode` renvoie-t-il NULL après un appel de service Web ?

Pourquoi `json_decode` renvoie-t-il NULL après un appel de service Web ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-01 16:14:24922parcourir

Why Does `json_decode` Return NULL After a Web Service Call?

Le décodage JSON renvoie null après un appel de service Web

Ce fil de discussion explore un comportement particulier rencontré lors du décodage des réponses JSON à partir d'un appel de service Web. Le problème est dû au fait que la fonction json_decode renvoie NULL malgré le renvoi des données JSON par le service Web.

Pour résoudre ce problème, il est important d'identifier la cause première. Dans le scénario donné, la clé du problème réside dans les guillemets magiques, une configuration PHP obsolète. Les guillemets magiques échappent automatiquement à certains caractères et changent leur signification dans les variables globales comme $_GET, $_POST, $_COOKIE, etc.

Lorsque les guillemets magiques sont activés, ils interfèrent avec le processus de décodage en corrompant les données JSON reçues de le service Web. Cela conduit à l'échec de json_decode et au renvoi de NULL.

Solution :

Pour résoudre ce problème, il est impératif de désactiver les guillemets magiques pour la variable $_POST spécifiquement. Ceci peut être réalisé grâce au code suivant :

if (get_magic_quotes_gpc()) {
  $param = stripslashes($_POST['param']);
} else {
  $param = $_POST['param'];
}
$param = json_decode($param, true);

En désactivant les guillemets magiques, les données JSON restent intactes et peuvent être décodées avec succès à l'aide de json_decode.

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