Vérifier votre JSON
Pas seulement valide ou invalide — la ligne, la colonne, le caractère, et comment corriger. Rien n'est conservé ; la vérification se fait ici même.
- Jamais conservé
- Pas de file d'attente, pas d'attente
- Sans inscription, sans filigrane
Collez du JSON : il est vérifié pendant la saisie.
Comment ça marche
Collez votre JSON
Ou déposez le fichier. Il est lu sur place ; rien n'est envoyé nulle part.
Lisez le verdict
Valide, avec le décompte de ce qu'il contient. Ou invalide, avec l'endroit exact signalé.
Corrigez et revérifiez
Modifiez directement : la réponse se met à jour pendant que vous tapez.
Ce que le JSON interdit vraiment
La grammaire du JSON est volontairement minuscule, et presque tous les échecs de validation viennent d'une poignée d'habitudes empruntées à JavaScript que le JSON n'a jamais adoptées. Une virgule finale après le dernier élément. Des guillemets simples au lieu de doubles. Des clés sans guillemets. Des commentaires — le JSON n'en a pas, et n'en a jamais eu. NaN et Infinity, qui sont des nombres JavaScript valides mais pas du JSON valide. Et une marque d'ordre des octets (BOM) en tête de fichier, invisible dans tous les éditeurs, que certains outils Windows ajoutent en enregistrant en UTF-8 et qui fait échouer un document parfaitement correct dès son premier caractère.
Deux choses sont autorisées et vous causeront pourtant des ennuis, ce qui explique pourquoi « valide » ne veut pas dire « correct ». Les clés en double ne sont pas interdites par la spécification — et chaque parseur les résout à sa manière, la plupart gardant la dernière : un document avec une clé répétée est validé ici et signifie des choses différentes selon le langage. Et les nombres n'ont aucune limite de précision définie en JSON, alors que la plupart des parseurs les lisent en virgule flottante : un entier au-delà d'environ neuf millions de milliards est arrondi sans prévenir, ce qui explique pourquoi les grands identifiants sont si souvent transmis sous forme de chaînes.
Vous obtenez la ligne, la colonne et le caractère exacts où l'analyse s'est arrêtée, ce qui est généralement plus utile que le message lui-même. Un parseur signale l'endroit où le document a cessé d'avoir un sens, pas celui où l'erreur a été commise — une accolade fermante manquante est signalée à la fin du fichier, et une virgule manquante au jeton qui suit. Regarder juste avant la position indiquée est le réflexe qui fait gagner le plus de temps.
Bien formé ne veut pas dire correct, et la distinction compte. L'outil confirme que la syntaxe s'analyse. Que le document contienne les champs exigés par votre API, qu'une valeur soit dans la bonne plage, qu'une date soit vraiment une date — rien de tout cela n'est une question de JSON. C'est la validation par schéma, elle nécessite un schéma, et un document peut être irréprochable ici et refusé aussitôt par le service auquel vous l'envoyez.
Si vous cherchez autre chose
Pour vérifier des documents par rapport à un schéma plutôt qu'à une grammaire, JSON Schema est la norme et ajv en est l'implémentation la plus rapide — il vous dira qu'un champ obligatoire manque ou qu'une valeur est hors plage, ce qui est généralement la vraie question que vous vous posez. check-jsonschema effectue les mêmes vérifications en ligne de commande et en CI.
Pour tout ce qui se fait en ligne de commande, jq est l'outil à avoir : jq empty file.json valide et n'affiche rien en cas de succès, exactement ce qu'il faut pour un script, et jq . formate. Pour les fichiers trop gros pour tenir en mémoire, jq --stream et ijson en Python analysent de façon incrémentale, ce qu'aucune page qui charge tout le document ne peut faire.
Questions fréquentes
Mon JSON est-il conservé quelque part ?
Non. Il n'y a aucun appel au serveur, aucune journalisation, et rien n'est conservé. Vous pouvez vous déconnecter d'Internet une fois la page chargée, elle continue de fonctionner. C'est plus important qu'il n'y paraît : ce que l'on colle dans un formateur en ligne, ce sont des réponses d'API, des fichiers de configuration et des messages d'erreur, qui contiennent régulièrement des jetons, des données clients et des noms d'hôtes internes.
Que m'indique-t-il quand le JSON est cassé ?
La ligne, la colonne, la ligne elle-même avec un accent circonflexe sous le caractère exact, et ce qui était attendu à cet endroit. La plupart des JSON cassés le sont pour l'une de quatre raisons — une virgule finale, des guillemets simples au lieu de doubles, une clé sans guillemets, ou un vrai retour à la ligne dans une chaîne — et chacune est nommée au lieu d'être décrite comme une erreur de syntaxe générique.
Qu'est-ce qui est considéré comme valide ?
La RFC 8259, strictement. Donc des clés entre guillemets doubles, pas de virgule finale, pas de commentaire, et ni zéro initial ni hexadécimal dans les nombres. La rigueur est tout l'intérêt d'un validateur : s'il acceptait ce que votre parseur refusera, il ne vous aurait rien appris.
Vérifie-t-il mon JSON par rapport à un schéma ?
Non — il vérifie la syntaxe, ce qui est une autre question. La syntaxe, c'est savoir si le texte est bien du JSON. Le schéma, c'est savoir si les données ont les bons champs et les bons types. Cette page répond à la première : elle vous dira que le fichier s'analyse et vous montrera la structure trouvée, mais elle ne sait pas ce que vos champs sont censés être.
Pourquoi indique-t-il « valide » alors que mon API le refuse ?
Parce qu'un JSON valide et le JSON qu'attend votre API sont deux choses différentes. Un document syntaxiquement parfait peut quand même manquer d'un champ obligatoire, utiliser une chaîne là où il faut un nombre, ou imbriquer les éléments autrement que ne l'attend le point d'accès. Comparez le résumé de structure affiché par cette page avec la documentation de l'API — l'écart saute généralement aux yeux.
Les grands nombres sont-ils correctement vérifiés ?
Oui, chiffre pour chiffre — la plupart des validateurs les cassent sans prévenir. Un nombre JavaScript est un flottant 64 bits : il ne peut représenter exactement les entiers que jusqu'à 9 007 199 254 740 991. Au-delà — un ID de post Twitter/X, un snowflake Discord, un numéro de compte bancaire, une clé de base de données 64 bits —, il perd ses derniers chiffres dès qu'il passe par `JSON.parse`. Le nombre a toujours l'air plausible, et c'est ce qui le rend dangereux : 7205759403792793600 devient discrètement 7205759403792793000. Cette page garde exactement les chiffres que vous avez collés, et vous indique combien de nombres elle a dû protéger.
Y a-t-il une limite de taille ?
La mémoire disponible, plutôt qu'un plafond que nous imposerions. Les documents de quelques mégaoctets se formatent instantanément ; les très gros sont limités par ce qui peut être gardé en mémoire à la fois, pas par quoi que ce soit de notre côté.
Bon à savoir : L'outil vérifie que le JSON est bien formé, pas qu'il a un sens. Un document peut être parfaitement valide et manquer quand même des champs qu'attend votre API — c'est la validation par schéma, qui nécessite un schéma. Vous obtenez ici la ligne, la colonne et le caractère exacts où l'analyse s'est arrêtée.
Intégrez cet outil à votre site
Gratuit pour tout blog, page de cours ou article d'aide. Collez un seul extrait de code et vos visiteurs pourront l'utiliser directement sur votre page.
Voir aussi : Outils développeur
Formateur JSON
Rendez lisible un JSON illisible
Validateur XML
Trouvez l'endroit exact où votre XML est cassé
Décodeur JWT
Lisez le contenu d'un jeton, en toute confidentialité
Décoder du Base64
Retrouvez le texte ou le fichier derrière du Base64
Formateur XML
Indentez votre XML pour pouvoir le lire
Encoder en Base64
Transformez un texte ou un fichier en Base64