Formateur et validateur JSON

Collez du JSON ou ouvrez un fichier. Il est vérifié pendant la saisie, mis en forme avec l’indentation de votre choix ou minifié, et chaque erreur indique sa ligne, sa colonne et comment la corriger.

Collez-le, déposez un fichier sur la zone ou ouvrez-en un. Rien n’est envoyé.
Résultat

Collez du JSON dans le champ, ou appuyez sur Exemple pour voir comment cela fonctionne.

Vous créez une API qui sert du JSON ? Il lui faut un serveur pour tourner. À partir de 3,02 € par mois aujourd’hui, parmi 2 226 serveurs.

Fonctionne dans votre navigateur : rien de ce que vous saisissez n’est envoyé ailleurs.

Comment cela fonctionne

La page lit votre texte avec un analyseur JSON strict qui suit la RFC 8259, le standard JSON. Elle s’arrête au premier caractère qui ne peut pas être du JSON et indique où il se trouve et pourquoi : une virgule en trop à la fin, une apostrophe, un signe deux-points ou une virgule manquant, un commentaire, un nombre que JSON n’autorise pas.

Le JSON valide est réécrit avec l’indentation choisie, ou sans aucun espace facultatif quand vous le minifiez. Les nombres et les chaînes sont copiés exactement comme vous les avez écrits : un long identifiant comme 12345678901234567890 garde tous ses chiffres et une séquence comme \u00e9 reste telle quelle. Le tri ordonne les clés de chaque objet d’après les points de code de leurs caractères ; les clés présentes deux fois gardent leurs deux copies, dans l’ordre.

Tout se passe dans votre navigateur. Les fichiers jusqu’à quelques Mo sont mis en forme en un instant ; au-delà de 1 Mo, la page attend que vous appuyiez sur Formater au lieu de refaire la mise en forme à chaque touche.

Exemple

Cette entrée a une virgule en trop après le dernier élément :

input.json
{
  "name": "web-1",
  "ports": [80, 443,]
}

Le validateur s’arrête à la ligne 3, colonne 20, sur cette virgule, et indique que JSON n’autorise pas de virgule après le dernier élément. Supprimez-la et le texte se met en forme comme montré, ou se minifie en une seule ligne de 33 caractères.

formatted.json
{
  "name": "web-1",
  "ports": [
    80,
    443
  ]
}

Questions

Pourquoi mon JSON échoue-t-il à cause d’une virgule finale ?

Parce que JSON n’autorise une virgule qu’entre deux éléments. JavaScript, Python et de nombreux formats de configuration acceptent une virgule après le dernier élément d’une liste ou d’un objet ; JSON non, et les analyseurs stricts comme JSON.parse, jq et la plupart des API rejettent tout le document. Supprimez la virgule que désigne l’erreur.

Le JSON peut-il contenir des commentaires ?

Non. JSON n’a pas de syntaxe pour les commentaires. Certains programmes lisent JSONC ou JSON5 à la place, qui en autorisent (les réglages de VS Code et tsconfig.json sont en JSONC), mais un analyseur JSON strict les rejette. Supprimez les commentaires, ou gardez une note dans un champ ordinaire comme "_comment".

La mise en forme modifie-t-elle mes nombres ?

Pas ici. JSON.parse de JavaScript transforme chaque nombre en valeur à virgule flottante de 64 bits : 12345678901234567890 ressort donc sous la forme 12345678901234567000 et 1.10 devient 1.1. Ce formateur ne les convertit jamais : nombres, chaînes et séquences d’échappement sont réécrits exactement comme ils étaient. Seuls les espaces et les sauts de ligne entre eux changent.

Quelle est la différence entre formater et minifier ?

Formater ajoute des sauts de ligne et de l’indentation pour qu’une personne puisse lire la structure. Minifier supprime chaque espace et saut de ligne dont JSON n’a pas besoin, ce qui allège le fichier à stocker et à envoyer. Les deux contiennent exactement les mêmes données ; un programme les lit de la même façon.

Le JSON que je colle est-il envoyé quelque part ?

Non. Il est analysé et mis en forme par le script de cette page dans votre navigateur, et ne quitte jamais votre appareil : vous pouvez donc y mettre des configurations et des réponses d’API qui contiennent des clés ou des données personnelles. Une fois la page chargée, elle fonctionne hors ligne.