Formateur JSON
Collez du JSON, récupérez-le indenté, minifié ou validé. Vos données restent sur cette page.
Les exemples remplacent temporairement la saisie et les réglages. Vous pouvez rétablir votre travail précédent.
Collez ou saisissez du texte ci-dessus pour voir le résultat ici.
Vos fichiers restent sur votre appareil
Cet outil fonctionne entièrement dans votre navigateur. Ce que vous collez est traité sur votre appareil et n’est jamais envoyé à un serveur : vous pouvez l’utiliser sans crainte avec des jetons, des clés et des textes non publiés.
Exemple
Exemple : une commande d’e-boutique, une virgule de trop et des prix en 19.90
Un développeur colle la réponse d’une API de commande, une seule ligne de 252 caractères : une cliente à Bordeaux, deux articles, livraison en point relais. Mode Formater, indentation 2 espaces. Le JSON est refusé : il reste une virgule après le dernier article, « 24.50},] ».
- Le message reprend l’erreur du navigateur (dans Chrome : « Unexpected token ']' … is not valid JSON »), puis « Line 1, column 208 » et un ^ sous le crochet fautif.
- Virgule retirée et « Trier les clés » coché, la sortie fait 22 lignes : articles, client, commande, livraison, payee ; dans chaque article, prixTTC, qte, ref. Les articles gardent leur ordre.
- Les prix 19.90 et 24.50 ressortent en 19.9 et 24.5 : un nombre JSON n’a pas de zéro final à garder.
| Version | Forme | Caractères |
|---|---|---|
| Entrée d’origine | une ligne, avec des espaces | 252 |
| Formater, 2 espaces, clés triées | 22 lignes indentées | 338 |
| Minifier | une ligne, sans aucun espace | 225 |
Minifié, le JSON fait 225 octets au lieu de 252 : seuls les espaces après les deux-points et les virgules sont retirés. Le compteur sous le résultat donne les caractères et les octets ; ils diffèrent dès qu’il y a des accents, « é » comptant pour 2 octets.
Comment ça marche
- Collez votre JSON dans le champ : une réponse d’API, un fichier de configuration, une ligne de journal, tout ce qui devrait être du JSON valide.
- Choisissez Formater pour la version lisible ou Minifier pour tout mettre sur une ligne. Prenez l’indentation utilisée dans votre projet.
- Activez le tri des clés pour les ranger par ordre alphabétique : les diffs et les relectures deviennent nettement plus lisibles.
- Le résultat s’affiche pendant la saisie. Si l’entrée est invalide, le message indique la ligne et la colonne du problème.
Questions fréquentes
- Que vérifie-t-il exactement ?
- La syntaxe JSON stricte de la RFC 8259 : clés entre guillemets doubles, pas de virgule finale, pas de commentaires, pas de guillemets simples, pas de clé non quotée. Si votre texte est de la notation d’objet JavaScript ou du JSON5, il sera signalé invalide au premier caractère fautif.
- Trier les clés change-t-il le sens des données ?
- Pas pour les objets. Un objet JSON est non ordonné par définition : un consommateur ne doit pas se fier à l’ordre des clés. Les tableaux ne sont jamais réordonnés, car leur ordre a un sens. Le tri s’applique récursivement à tous les objets imbriqués.
- Pourquoi les grands nombres changent-ils après formatage ?
- Les nombres JSON sont lus comme des flottants JavaScript : au-delà de 2^53 les entiers perdent en précision et les décimales très longues sont arrondies. Les échappements comme \u00e9 apparaissent en clair. Pour des entiers exacts, gardez-les sous forme de chaîne.
- Pourquoi « 19,90 » est-il refusé ?
- En JSON, le séparateur décimal est le point. Dans {"prix": 19,90}, le nombre s’arrête à 19 et la virgule annonce une autre clé : d’où « Expected double-quoted property name » à la ligne 1, colonne 13. Écrivez 19.90, ou "19,90" entre guillemets si c’est un texte à afficher.
- Les zéros après la virgule disparaissent : est-ce grave ?
- Non pour un programme : 19.90 et 19.9 sont le même nombre, et le formateur écrit chaque nombre sous sa forme la plus courte. Si l’affichage « 19.90 » compte, gardez le prix en texte, ou en centimes (1990).
- Quelque chose part-il vers un serveur ?
- Non. Tout tourne dans le navigateur : ce que vous collez reste sur votre ordinateur.