JSON_VALIDATE |
JSON est valide |
PHP 8.3.0+ |
Syntaxe
function json_validate($json, $depth = 512, $flags = 0);
|
Paramètres
Nom |
Description |
$json |
Ce paramètre contient la chaîne JSON que vous souhaitez valider. C'est le contenu brut que vous voulez vérifier pour vous assurer qu'il respecte les spécifications JSON. |
$depth |
Ce paramètre permet de définir la profondeur maximale autorisée lors de la validation. Il sert à protéger contre des structures JSON trop imbriquées qui pourraient provoquer des problèmes de performance ou une consommation excessive de mémoire. |
$flags |
Ce paramètre permet d'indiquer des options supplémentaires pour la validation JSON. Ces options sont définies sous forme de constantes, et elles modifient le comportement de la validation. |
JSON_VALIDATE_DEEP |
Cette valeur permet d'indiquer qu'il faut vérifier également le contenu des valeurs dans le JSON, notamment les types et leur conformité aux règles JSON. |
JSON_BIGINT_AS_STRING |
Cette valeur permet d'indiquer que lorsque le JSON contient des nombres entiers très grands (hors intervalle des entiers standards). Cela force la validation à interpréter ces grands nombres comme des chaînes de caractères. |
Description
Cette fonction permet de vérifier si une chaîne donnée est un JSON valide sans la décoder. Très utile pour valider rapidement une entrée JSON.
Remarques
- Validation structurale des JSON : La fonction json_validate() permet de vérifier si une chaîne de caractères est un
JSON valide en s'assurant que sa structure respecte le format JSON. Contrairement à json_decode(), elle ne retourne
pas de valeur interprétée, ce qui la rend idéale pour valider uniquement la syntaxe sans avoir besoin de traiter les données.
- Performance par rapport à json_decode() : Utiliser json_validate() est plus performant que json_decode() suivi d'une vérification d'erreur avec
json_last_error(). Elle effectue uniquement une validation syntaxique et n'essaie pas de transformer la chaîne en objet ou tableau, ce qui peut être avantageux pour les
applications sensibles à la performance.
- Gestion des erreurs : La fonction retourne un booléen, ce qui facilite la gestion des erreurs. Si le JSON est invalide, alors le développeur peut intercepter
directement le problème sans avoir besoin d'analyser un code d'erreur.
- Compatibilité des versions de PHP : Introduite dans PHP 8.3, cette fonction n'est pas disponible dans les versions précédentes. Les développeurs doivent donc
s'assurer que leur environnement est à jour avant de l'utiliser, ou prévoir des alternatives pour les anciennes versions.
- Utilité dans les API : json_validate() est particulièrement utile pour vérifier des données JSON reçues via une API. Elle peut éviter que des
données malformées soient traitées, ce qui améliore la robustesse et la sécurité des applications.
- Limitation de profondeur : Par défaut, cette fonction impose une limite de profondeur à la validation pour éviter des boucles excessives ou des consommations
mémoire importantes. Cela peut être ajusté si les JSON traités sont très imbriqués, mais il faut rester prudent avec de grandes profondeurs.
- Alternatives avant PHP 8.3 : Avant l'arrivée de json_validate(), les développeurs devaient utiliser json_decode() avec json_last_error() pour
vérifier la validité. Cette approche, bien que fonctionnelle, était moins claire et plus lourde à implémenter dans le code.
- Prise en charge des formats partiels : Cette fonction ne valide que des objets JSON complets. Si une chaîne JSON partielle (comme un tableau
manquant un crochet de fermeture) est passée, elle sera considérée comme invalide, ce qui est conforme à la spécification JSON stricte.
Dernière mise à jour : Jeudi, le 16 Janvier 2025