Pour vérifier qu'un flux de données JSON est correctement formaté, en PHP, vous pouvez utiliser la CLASS JSON_THROW_ON_ERROR
.
Par défaut, json_decode()
renverra null
lorsqu'il aura passé une chaîne JSON non valide. Cela pose un problème car un null
isolé est une chaîne JSON valide. Vous n'avez aucun moyen de savoir si la valeur de retour null
est due au JSON contenant null
, ou parce que le flux JSON était mal formé et n'a pas pu être analysé.
PHP 7.3 a finalement résolu ce problème en ajoutant l'indicateur JSON_THROW_ON_ERROR
.
json_decode("['JSON mal formaté", true, 512, JSON_THROW_ON_ERROR);
Vous pouvez également utiliser les arguments nommés de PHP 8 pour simplifier un peu les choses, car vous n'aurez pas besoin de transmettre des valeurs explicites pour les paramètres facultatifs :
json_decode(json:"['JSON mal formaté", flags: JSON_THROW_ON_ERROR);
Remarque : les constantes d'erreurs PHP sont listées sur cette page, vous trouverez par ailleurs d'avantage d'informations sur JSON_THROW_ON_ERROR
via cette autre page.