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 les mauvais JSON pour des chaînes telles que { bar: "baz" }, il ne parvient pas à gérer les données autres que des chaînes telles que les "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 @ :
$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 diverses erreurs d'analyse JSON.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3