Formateur JSON
Formate, compresse et valide le JSON. Choisissez l'indentation pour une mise en forme lisible ou compressez en une seule ligne. Les erreurs de syntaxe sont détectées instantanément.
Ce que fait un formateur de JSON
Un formateur de JSON prend du JSON tassé sur une seule ligne et le redéploie avec des retraits, ou fait l’inverse : il ôte les espaces et le ramène sur une ligne unique. Comme il lui faut analyser l’entrée dans les deux cas, il vous dit au passage si la syntaxe tient, si bien que coller une réponse d’API ou un fichier de configuration vous apporte d’un coup la mise en forme, la compression et la validation. Le retrait se règle sur deux espaces, quatre espaces ou une tabulation.
C’est l’analyseur JSON du navigateur lui-même qui tranche : vous ne rencontrerez donc pas ce décalage où une chose passe ici et échoue dans votre environnement d’exécution. Tout se déroule dans votre appareil : le JSON que vous collez n’est jamais transmis à un serveur. Même une réponse portant un jeton d’authentification ou des données personnelles peut être mise en ordre sans que rien n’en sorte.
Comment se servir du formateur de JSON
- Collez votre JSON Collez-le dans la zone de saisie de gauche. Si vous n’avez rien sous la main, le bouton d’exemple charge un échantillon.
- Choisissez le retrait Retenez deux espaces, quatre espaces ou une tabulation. Réglé sur les règles de votre projet, le résultat se recolle tel quel.
- Vérifiez la pastille valide/invalide Elle change au fil de la saisie. Si le JSON est invalide, le message d’erreur de l’analyseur s’affiche tel quel : vous pouvez suivre à quelle ligne et à quel caractère il a buté.
- Copiez le résultat mis en forme ou compressé « Copier le mis en forme » place dans le presse-papiers le résultat avec retraits ; « copier le compressé », la ligne unique sans espaces.
- Lisez le nombre de lignes et d’octets Les lignes se comptent sur le résultat mis en forme, les octets sur le compressé, mesurés en UTF-8. Pour estimer le volume transmis, tenez-vous au second.
Astuces pour en tirer le meilleur parti
- Les clés JSON doivent obligatoirement être entourées de guillemets doubles. Les guillemets simples sont invalides.
- Les virgules finales (
{"a":1,}) sont invalides selon la spécification JSON. - La notation scientifique est valide pour les nombres. En revanche,
NaNetInfinitysont invalides. - Les guillemets doubles dans les chaînes doivent être échappés avec
\". Les sauts de ligne s'écrivent\n, les tabulations\t. - La compression est efficace pour réduire la taille des fichiers. La version compressée convient aux transferts API, la version formatée aux fichiers de configuration.
Où le formateur de JSON est utile
Parcourir une réponse d’API
Mettez en forme une réponse revenue sur une seule ligne et la profondeur de l’imbrication comme le nombre d’éléments de chaque tableau deviennent suivables à l’œil. C’est de loin l’usage le plus fréquent, au développement comme à la recherche d’un bogue.
Repérer une faute de syntaxe dans un fichier de configuration
Lorsqu’une application refuse de charger sa configuration, coller le fichier et le valider désigne la cause sur-le-champ : une virgule finale, un guillemet resté ouvert.
Compresser pour transmettre moins
Renvoyer du JSON mis en forme comme réponse d’API ou comme données incorporées gaspille de la bande passante rien qu’en retraits. Pour tout ce que l’on diffuse, prenez la version compressée.
Mettre au propre des exemples pour la documentation ou un ticket
Donnez aux exemples de requête et de réponse d’une spécification ou d’un rapport de bogue une forme lisible et régulièrement indentée.
Préparer l’entrée avant une conversion
Confirmer la syntaxe d’abord vous épargne des erreurs obscures de l’autre côté quand vous confiez les données à JSON vers types TypeScript ou à JSON vers XML.
Termes relatifs au JSON
- JSON
- Sigle de JavaScript Object Notation, le format d’échange de données fixé par la RFC 8259. Il ne repose que sur six choses – objet, tableau, chaîne, nombre, booléen et null – et, tout langage sachant le lire et l’écrire, il est devenu le format ordinaire des API web.
- Mise en forme (pretty-print)
- Refaire le texte avec des retraits et des retours à la ligne qui suivent la profondeur de l’imbrication, afin qu’un humain puisse le lire. Les données ne changent pas ; seule leur apparence change.
- Compression (minify)
- Ôter tout espace et tout retour à la ligne dénué de sens et tout ramener sur une ligne. Le nombre d’octets baisse, on transmet donc moins, mais ce n’est plus destiné à l’œil humain.
- Validation
- Vérifier que l’entrée suit la grammaire du JSON. Cet outil laisse ce travail à l’analyseur du navigateur et en affiche le message d’erreur mot pour mot en cas d’échec.
- Séquence d’échappement
- Manière d’écrire, au moyen d’une barre oblique inverse, des caractères qui ne peuvent figurer tels quels dans une chaîne. Le guillemet droit s’écrit
\", le retour à la ligne\n, la tabulation\t. - Ordre des clés
- Le JSON lui-même n’impose aucun ordre aux clés d’un objet. Cet outil faisant passer les données par un objet JavaScript, seules les clés qui se lisent comme des entiers –
"1","2"et semblables – sont remises en ordre croissant. Toute autre clé garde la place où elle a été écrite. - UTF-8
- L’encodage de caractères que la RFC 8259 impose au JSON. Les caractères hors ASCII occupent plusieurs octets chacun : le compte des caractères et celui des octets ne se rejoignent donc pas.
Questions fréquentes
undefined, les fonctions, NaN et Infinity ne sont pas autorisées.number. Les grands entiers dépassant MAX_SAFE_INTEGER en JavaScript peuvent perdre en précision.
Anecdote — Pourquoi JSON a supplanté XML
Au début des années 2000, XML dominait les échanges de données. En 2001, Douglas Crockford a proposé JSON : plus léger, plus simple à manipuler et plus lisible. Depuis les années 2010, JSON est devenu le standard incontournable.
Pour un même jeu de données, JSON est souvent 30 à 50 % moins volumineux que XML. À l'ère des communications mobiles, cela se traduit directement par une meilleure réactivité des applications.
La RFC 8259 précise que les clés dupliquées sont « SHOULD NOT » — interdites sans l'être formellement. {"a":1,"a":2} est syntaxiquement valide, mais son comportement reste indéfini.