Ce que ça fait
Vérifie un document JSON à chaque frappe et situe exactement où il casse. Un badge bascule entre JSON valide et JSON invalide pendant que vous tapez. Quand le document est valide, un panneau à quatre cases rapporte sa taille en octets (UTF-8), son type de plus haut niveau, son nombre de clés ou d’éléments, et sa profondeur d’imbrication maximale. Quand il est invalide, l’erreur nomme la ligne et la colonne, et un second panneau cite la ligne fautive de votre entrée. Tout s’exécute localement dans votre navigateur ; rien de ce que vous collez n’est envoyé nulle part.
Comment l’utiliser
- Collez ou tapez du JSON dans Entrée JSON. Touchez Exemple pour un document de démonstration, Effacer pour vider la boîte.
- Lisez le badge : JSON valide (vert) ou JSON invalide (rouge).
- Si valide, lisez le panneau de statistiques :
- bytes - la taille UTF-8 du document, pas son nombre de caractères.
- type - l’un de array, object, string, number, boolean, null.
- keys (objets) ou items (tableaux) - uniquement le compte de plus haut niveau.
- depth - imbrication maximale ; le plus haut niveau compte pour 1.
- Si invalide, lisez
Line X, Column Y: <raison>, puis la ligne citée juste en dessous. - Copier l’entrée duplique votre texte ; Copier le lien de partage l’encode dans l’URL (
?j=...).
Exemples
{"name":"CosmoDev","free":true,"tools":["json","base64"]}
Résultat : JSON valide, 57 octets, type object, 3 clés, profondeur 3. Les chaînes dans tools se trouvent deux niveaux sous la racine, donc la profondeur est 3.
Un scalaire est un document JSON complet :
| Entrée | Verdict | Statistiques |
|---|---|---|
123 |
JSON valide | 3 octets, type number, profondeur 1 |
true |
JSON valide | 4 octets, type boolean, profondeur 1 |
null |
JSON valide | 4 octets, type null, profondeur 1 |
Une erreur épinglée à sa place :
{"a": 1}
extra
Résultat : Line 2, Column 1 avec la raison, et le panneau en dessous cite extra.
Comment fonctionne la validation JSON
Un analyseur JSON lit le document une fois, de gauche à droite, et s’arrête au premier caractère qui ne peut pas légalement apparaître là où il apparaît. L’outil fait alors correspondre le décalage de ce caractère à une position : il compte les sauts de ligne avant le décalage pour la ligne, et les caractères depuis le dernier saut de ligne pour la colonne. Les deux sont indexés à partir de 1, donc Line 2, Column 1 signifie le tout début de la deuxième ligne. Le panneau cité imprime cette ligne depuis votre entrée, pour que l’extrait vienne toujours de votre document, jamais d’un modèle générique.
Quatre erreurs causent la plupart du JSON invalide en pratique :
| Erreur | Exemple | Pourquoi ça échoue |
|---|---|---|
| Virgule finale | {"a":1,} |
après une virgule l’analyseur attend une clé, et } n’en est pas une |
| Guillemets simples | {'a':1} |
les chaînes et les clés doivent utiliser des guillemets doubles |
| Clé non quotée | {a:1} |
les clés sont des chaînes, et les chaînes sont quotées |
| Commentaire | {"a":1} //x |
JSON ne définit aucun commentaire du tout |
Aucune de ces erreurs n’est une question de style. La grammaire JSON (RFC 8259) autorise exactement une orthographe pour chacune, et l’analyseur l’applique. Cette rigueur est le but : un document qui valide ici s’analyse à l’identique dans tout analyseur conforme, dans tout langage.
Bon à savoir
- Première erreur seulement : l’analyseur s’arrête au premier problème. Corrigez-le, revalidez, et le suivant apparaît.
- Différences de moteur : quand le moteur sous-jacent ne rapporte pas de position, le verdict affiche quand même le message brut.
- Partageable : votre entrée est encodée dans l’URL (
?j=...), donc un lien reproduit la vue exacte. - Privé : sûr pour des configs, des identifiants et des charges utiles d’API.
- Outils liés : JSON Formatter, JSON Minify, Convertisseur JSON ↔ CSV.