Erreurs de l'analyseur lors de l'analyse JSON en PHP
Avec la fonction json_last_error
on peut savoir exactement quelle erreur
s'est produite lors de l'analyse JSON.
Voyons comment cela
se fait. Supposons que nous ayons
un JSON incorrect :
<?php
$json = '["a", "b", "c",]';
?>
Essayons de l'analyser :
<?php
$data = json_decode($json);
var_dump($data); // affichera null
?>
Puisqu'une erreur s'est produite, json_last_error
lors de son appel renverra le numéro de cette erreur :
<?php
$error = json_last_error();
var_dump($error); // numéro de l'erreur
?>
Le numéro renvoyé peut être comparé avec des constantes spéciales de PHP. Sur cette base, on peut écrire un code capturant différents types d'erreurs :
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'aucune erreur';
break;
case JSON_ERROR_DEPTH:
echo 'profondeur maximale de la pile atteinte';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'bits incorrects ou non-correspondance des modes';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'caractère de contrôle incorrect';
break;
case JSON_ERROR_SYNTAX:
echo 'erreur de syntaxe, JSON incorrect';
break;
case JSON_ERROR_UTF8:
echo 'caractères UTF-8 incorrects, peut-être mal encodé';
break;
default:
echo 'erreur inconnue';
break;
}
?>
Une chaîne avec un JSON est donnée. Analysez-le en une structure de données PHP. Affichez le résultat de l'analyse ou la raison de l'erreur si l'analyse du JSON a échoué.