Gestion des données JSON incorrectes avec json_decode() en PHP
Lorsque vous traitez des données JSON à l'aide de json_decode(), il est crucial de gérer les données non valides efficacement. Bien que le script fourni puisse détecter un JSON incorrect pour des chaînes telles que { bar: "baz" }, il ne parvient pas à gérer les données autres que des chaînes telles que "données invalides".
Comprendre json_decode()
Pour résoudre ce problème, il est essentiel de comprendre json_decode() :
Suppression des avertissements avec l'opérateur @
Pour supprimer les avertissements, une option consiste à utiliser l'opérateur @ opérateur :
$data = @json_decode($_POST);
Cette approche fait taire l'avertissement, mais nécessite des vérifications supplémentaires pour gérer les erreurs et les valeurs nulles :
if ($data === null && json_last_error() !== JSON_ERROR_NONE) { echo "Incorrect data"; }
Gestion personnalisée des erreurs
Une autre option consiste à créer un script de gestion des erreurs personnalisé :
function handle_json_error() { $error = json_last_error(); switch ($error) { case JSON_ERROR_NONE: return true; case JSON_ERROR_DEPTH: echo "Maximum depth exceeded"; break; case JSON_ERROR_STATE_MISMATCH: echo "Invalid or malformed JSON"; break; case JSON_ERROR_CTRL_CHAR: echo "Control character error"; break; case JSON_ERROR_SYNTAX: echo "Syntax error"; break; case JSON_ERROR_UTF8: echo "Malformed UTF-8 characters"; break; default: echo "Unknown error"; } return false; } if (!handle_json_error()) { echo "Bad JSON data!"; }
Ce script fournit des messages d'erreur détaillés et gère divers JSON. erreurs d'analyse.
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!