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!