À propos du formatage JSON
JSON (JavaScript Object Notation) est le format d'échange de données le plus courant sur le Web. Le JSON brut des APIs est souvent minifié — tout sur une ligne sans espaces — ce qui est difficile à lire. L'embellissement ajoute une indentation cohérente.
La minification supprime les espaces inutiles, réduisant la taille du fichier. La validation vérifie que le texte est du JSON syntaxiquement correct : correspondance des crochets, clés entre guillemets, position des virgules et types de valeurs.
Comment embellir ou minifier du JSON ?
Pour embellir du JSON, analysez le texte pour le transformer en structure de données puis resérialisez-le avec des sauts de ligne et une indentation cohérents (généralement 2 espaces) ; pour le minifier, resérialisez la même structure sans aucun espace superflu. Exemple : {"a":1,"b":2} s'embellit en un bloc de 4 lignes avec une indentation de 2 espaces, et se minifie de nouveau en {"a":1,"b":2}.
Étapes pour embellir, minifier et valider du JSON
- Collez le texte JSON brut dans le champ de saisie.
- Pour embellir, l'outil analyse le texte en une structure d'objet ou de tableau, puis le réécrit avec une indentation de 2 espaces et un saut de ligne par clé ou élément de tableau.
- Pour minifier, l'outil analyse la même structure mais la réécrit sans saut de ligne ni espace superflu, en ne laissant que les caractères nécessaires à une syntaxe valide.
- Pour valider, l'outil tente d'analyser le texte sans le reformater ; une analyse réussie signifie que le JSON est syntaxiquement valide.
- Si l'analyse échoue à une étape quelconque, la raison exacte (jeton inattendu, virgule manquante, crochet non apparié) est affichée afin que vous puissiez localiser et corriger l'erreur.
Embellir contre minifier
Embellir : parse(texte) -> stringify(valeur, indentation=2) | Minifier : parse(texte) -> stringify(valeur, indentation=0)
- parse = convertit le texte JSON en un objet, tableau, chaîne, nombre, booléen ou null en mémoire
- stringify = reconvertit cette structure en texte JSON, avec ou sans indentation
Exemples de résultats d'embellissement et de minification
| Entrée | Embelli (indentation 2 espaces) | Minifié |
|---|
| {"a":1,"b":2} | {⏎ "a": 1,⏎ "b": 2⏎} | {"a":1,"b":2} |
| [1,2,3] | [⏎ 1,⏎ 2,⏎ 3⏎] | [1,2,3] |
| {"x":{"y":true}} | {⏎ "x": {⏎ "y": true⏎ }⏎} | {"x":{"y":true}} |
Questions fréquentes
Pourquoi l'outil dit-il que mon JSON est invalide alors qu'il semble correct ?
Les erreurs invisibles courantes incluent une virgule finale après le dernier élément, des guillemets simples au lieu de doubles autour des clés et des chaînes, ou une clé non entre guillemets — toutes valides dans les littéraux d'objet JavaScript mais pas en JSON strict. Le validateur suit la grammaire JSON stricte, donc chacun de ces cas échoue même si le texte ressemble à du JavaScript valide.
Quelle est la différence entre JSON et un objet JavaScript ?
JSON est un format de données textuel à grammaire stricte : les clés doivent être des chaînes entre guillemets doubles, les virgules finales sont interdites, et seul un ensemble fixe de types de valeurs (chaîne, nombre, booléen, null, objet, tableau) est autorisé. Un littéral d'objet JavaScript est une syntaxe plus permissive qui autorise aussi des clés non entre guillemets, des virgules finales, des fonctions et des commentaires, dont aucun n'est du JSON valide.
La minification change-t-elle les données représentées par le JSON ?
Non. La minification supprime uniquement les espaces qui ne font pas partie d'une valeur de chaîne ; la structure de données analysée, et donc son sens, est identique avant et après. Seul le nombre d'octets nécessaires pour transmettre ou stocker le texte change.
Puis-je formater du JSON profondément imbriqué avec cet outil ?
Oui. L'embellissement fonctionne de manière récursive sur des objets et des tableaux de n'importe quelle profondeur, en ajoutant 2 espaces d'indentation supplémentaires à chaque niveau imbriqué afin que la structure reste lisible quelle que soit sa profondeur d'imbrication.
Cet outil valide et reformate le JSON standard tel que défini par la RFC 8259 ; il ne prend pas en charge JSON5, JSONC (avec commentaires) ni d'autres dialectes JSON assouplis, et les entrées très volumineuses (plusieurs mégaoctets) peuvent être lentes à traiter dans le navigateur.
Sources: RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format, ECMA-404 - The JSON Data Interchange Syntax