Maison >développement back-end >tutoriel php >Pourquoi mon décodage JSON renvoie-t-il NULL malgré une réponse JSON apparemment valide de mon service Web ?

Pourquoi mon décodage JSON renvoie-t-il NULL malgré une réponse JSON apparemment valide de mon service Web ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 05:08:14817parcourir

Why is my JSON Decode Returning NULL Despite a Seemingly Valid JSON Response from my Web Service?

Le décodage JSON échoue avec une réponse nulle du service Web

Un problème particulier se produit lors de l'utilisation de json_encode et json_decode pour gérer les données JSON dans une application de service Web . Le service Web renvoie JSON au format suivant :

var_dump($foo):
string(62) "{"action":"set","user":"123123123123","status":"OK"}"

Lors de la tentative de décodage du JSON dans l'application client à l'aide du code suivant :

$data = json_decode($foo, true)

le résultat est étonnamment nul :

var_dump($data):
NULL

Une cause potentielle de ce problème réside dans la configuration des guillemets magiques PHP sur le serveur. Dans les versions PHP antérieures à 5.4, les guillemets magiques échappaient automatiquement certains caractères dans les soumissions de formulaires, y compris les entrées JSON. Pour résoudre ce problème, désactivez les guillemets magiques à l'aide du code suivant :

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

Cela devrait résoudre le problème et permettre à json_decode de renvoyer l'objet JSON attendu comme prévu.

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