Formater, valider et minifier du JSON
Collez votre JSON : l’outil vérifie immédiatement s’il est valide, indique l’emplacement exact de l’erreur avec une explication et fournit le résultat indenté ou minifié, prêt à copier. Rien n’est envoyé sur un serveur.
Comment le calcul est fait
Ce que l’outil vérifie
La référence est la RFC 8259, le standard Internet du JSON (équivalent à ECMA-404). L’outil lit votre texte caractère par caractère avec son propre parseur et s’arrête à la première infraction. Le message indique la ligne et la colonne, signale l’endroit par un ^ et explique le problème – de la même façon dans tous les navigateurs, car les messages intégrés de JSON.parse varient d’un navigateur à l’autre et sont souvent peu parlants (« Unexpected token »).
Les erreurs JSON les plus fréquentes
- Virgule finale après le dernier élément :
{"a": 1,}– acceptée en JavaScript, interdite en JSON. - Apostrophes simples ou clés sans guillemets :
{'a': 1},{a: 1}– la forme correcte est{"a": 1}. - Commentaires (
//,/* */) : ils n’existent pas en JSON. - Valeurs JavaScript ou Python :
undefined,NaN,Infinity,True,None– seulstrue,falseetnullsont autorisés. - Nombres : pas de zéro initial (
012), pas de+1, pas de.5ni de5., pas d’hexadécimal (0x1F). Le séparateur décimal est toujours le point, jamais la virgule. - Chaînes : un saut de ligne ou une tabulation s’écrit
\nou\t, une barre oblique inverse seule\\(cas typique des chemins Windows). - Caractères invisibles : une espace insécable (U+00A0) copiée depuis Word ou une page web n’est pas un blanc valide en JSON – piège fréquent avec des textes en français.
Formater, minifier, trier
La sortie est reconstruite à partir du contenu validé : Formater indente chaque niveau de 2 ou 4 espaces ou d’une tabulation, Minifier supprime tous les blancs facultatifs (fichier le plus léger). Nombres et chaînes sont conservés à l’identique – contrairement à JSON.parse + JSON.stringify, 1.0 ne devient pas 1 et 12345678901234567890 n’est pas arrondi. Trier classe les clés par unités de code Unicode, comme le JSON Canonicalization Scheme (RFC 8785) : majuscules avant minuscules, lettres accentuées (é, è, à…) après les deux.
Avertissements plutôt qu’erreurs
Les clés en double dans un même objet ne sont pas interdites par la RFC 8259, mais peu fiables : la plupart des programmes ne gardent que la dernière valeur. Un BOM (indicateur d’ordre des octets) en début de texte peut être ignoré par un lecteur – l’outil l’ignore et vous le signale.
Limites
L’outil vérifie la syntaxe, pas le sens : savoir si des champs obligatoires manquent ou si les types sont corrects relève d’un JSON Schema. Les colonnes comptent les caractères Unicode à partir de 1 (une tabulation = 1 caractère) ; un éditeur réglé sur une largeur de tabulation de 4 affichera une colonne plus élevée. L’entrée est limitée à 5 millions de caractères et 1 000 niveaux d’imbrication.
Questions fréquentes
Mon JSON est-il envoyé ou enregistré ?
Non. La validation et la mise en forme se font entièrement dans votre navigateur. Le texte n’apparaît pas dans la barre d’adresse et n’est pas enregistré – seules les options (sortie, indentation, tri) figurent dans le lien.
Pourquoi les commentaires et les virgules finales sont-ils interdits ?
Le JSON est volontairement minimal, afin que tous les langages de programmation le lisent de la même manière. Commentaires et virgules finales relèvent d’extensions comme JSON5 ou JSONC (utilisé par exemple pour les réglages de VS Code) – en tant que JSON pur, ces fichiers ne sont pas valides.
Mon JSON est valide, mais le programme le refuse quand même – pourquoi ?
Le plus souvent, le contenu ne correspond pas à ce qu’attend le programme : un champ obligatoire manquant, un nombre à la place d’une chaîne ou une autre structure. C’est ce que décrit un JSON Schema ou la documentation de l’API. Vérifiez aussi l’avertissement sur les clés en double.
La ligne et la colonne correspondent-elles à mon éditeur ?
Les lignes, toujours. Les colonnes comptent les caractères à partir de 1 ; une tabulation compte pour un caractère, un emoji aussi. Un éditeur qui affiche les tabulations sur 4 colonnes indiquera un nombre plus élevé. « Aller à l’erreur » place le curseur exactement au bon endroit.
Comment trouver le problème après « fin inattendue » ?
Il manque presque toujours une accolade } ou un crochet ] fermant, ou un guillemet. Le message indique la ligne de l’accolade ou du crochet jamais refermé – commencez par regarder la fin de ce bloc.
Sources et références juridiques
- STD 90, §§ 2–9: IETF RFC 8259 – The JavaScript Object Notation (JSON) Data Interchange Format
- ECMA-404 – The JSON Data Interchange Syntax, 2nd edition
- § 3.2.3: IETF RFC 8785 – JSON Canonicalization Scheme (Sortierung der Schlüssel)
- JSONTestSuite (Nicolas Seriot) – Testfälle für JSON-Parser
Dernière mise à jour :
Outils similaires
- Validateur XML et CSV en ligneVérifiez qu’un XML est bien formé et qu’un CSV respecte la RFC 4180 : erreurs avec ligne et colonne, séparateur détecté, aperçu du tableau. En local.
- Testeur regexTestez vos expressions régulières JavaScript en direct : correspondances surlignées, groupes de capture, motif expliqué. Gratuit, sans envoi.
- Encoder et décoder en Base64Encodez et décodez Base64 et Base64url en UTF-8 correct, ainsi que l’encodage URL (pourcent-encodage). Erreurs expliquées, tout en local.
- Générateur de hash : SHA-256, SHA-512, SHA-1, MD5Calculez les hash SHA-256, SHA-384, SHA-512, SHA-1 et MD5 d’un texte ou d’un fichier et vérifiez une somme de contrôle – en local, sans envoi.
- Générateur d’UUID : créer et vérifier des UUID v4 et v7Générez des UUID en ligne : version 4 (aléatoire) ou version 7 (triée par date), jusqu’à 1 000 d’un coup. Vérifiez un UUID : version, variante et horodatage.
- Convertisseur de timestamp UnixConvertir un timestamp Unix en date et inversement : secondes, millisecondes, micro- et nanosecondes détectées ; affichage UTC, heure locale, ISO 8601.