Formateur JSON

Formatez, validez, minifiez et triez du JSON.

À propos de cet outil

Collez du JSON pour l’indenter selon vos préférences, le minifier pour le transport, ou trier les clés par ordre alphabétique pour rendre les diffs lisibles. Les erreurs de syntaxe sont signalées avec la ligne et la colonne.

Mode d’emploi

  1. Collez votre JSON dans la zone Entrée, ou collez-le dans la recherche avec ⌘K et choisissez Formateur JSON.
  2. Choisissez 2 espaces, 4 espaces, des tabulations, ou Minifier pour tout mettre sur une seule ligne.
  3. Activez Trier les clés si vous voulez les clés par ordre alphabétique, ce qui facilite la comparaison de deux versions.
  4. Copiez le résultat. Si le JSON est invalide, l’erreur indique la ligne et la colonne à corriger.

Questions

Pourquoi mon JSON est-il invalide ?
Les causes habituelles sont une virgule après le dernier élément, des guillemets simples au lieu de guillemets doubles, des clés sans guillemets ou des commentaires. JSON n’autorise rien de tout cela. Le message d’erreur indique la ligne et la colonne exactes.
Peut-il lire un dict Python ou un objet JavaScript ?
Oui. Les valeurs avec guillemets simples, True, False, None, clés sans guillemets ou virgules finales sont automatiquement converties en JSON valide, et la ligne d’état vous le signale.
Puis-je coller des réponses d’API contenant des données personnelles sans risque ?
Oui. Le formatage se fait dans votre navigateur et rien n’est envoyé à un serveur : vous pouvez coller des données de production sans qu’elles quittent votre machine.
Quelle est la différence entre formater et minifier ?
Le formatage ajoute des sauts de ligne et une indentation pour faciliter la lecture. La minification supprime tous les espaces facultatifs pour que la charge utile soit la plus légère possible lors de son envoi sur le réseau.
Que deviennent les clés en double dans un objet JSON ?
La norme JSON n’interdit pas les clés en double, mais elle laisse leur signification ouverte. Ici, comme avec JSON.parse dans tous les navigateurs, la dernière valeur l’emporte : {"a": 1, "a": 2} est donc formaté en {"a": 2}. Si une clé semble disparaître après le formatage, cherchez-en une deuxième occurrence dans l’entrée.
Peut-on formater un gros fichier JSON ?
Oui. Cliquez sur Ouvrir un fichier ou déposez le fichier dans la zone Entrée. Il est lu localement, jamais envoyé, et les fichiers jusqu’à 50 MB sont acceptés. Les très gros documents rendent le défilement de la zone de texte plus lent : utilisez plutôt Télécharger pour enregistrer le résultat dans formatted.json au lieu de le copier.
Comment formater du JSON Lines ou du NDJSON ?
JSON Lines place une valeur JSON sur chaque ligne : le fichier dans son ensemble n’est donc pas du JSON valide, et le formateur signale une erreur là où commence la deuxième valeur. Formatez une ligne à la fois, ou transformez le fichier en tableau en l’entourant de [ ] et en ajoutant une virgule à la fin de chaque ligne sauf la dernière.

Qu’est-ce qu’un formateur et validateur JSON ?

Un formateur JSON prend du JSON compact ou désordonné et le réécrit avec une indentation cohérente et une clé par ligne, pour rendre les données imbriquées lisibles. Un validateur JSON vérifie que le texte respecte la grammaire JSON : clés et chaînes entre guillemets doubles, pas de virgule finale, pas de commentaires, et seulement true, false et null comme littéraux. Cet outil fait les deux en une seule passe. Une entrée valide revient mise en forme, et une entrée invalide affiche le message du parseur avec la ligne et la colonne.

Mettre en forme du JSON ne modifie jamais les données. Les clés, les valeurs et l’ordre des tableaux restent exactement les mêmes : seuls les espaces changent. Une limite mérite d’être connue : les nombres JSON sont lus comme des doubles JavaScript, donc les entiers supérieurs à 9007199254740991 perdent en précision. Un identifiant comme 12345678901234567890 revient sous la forme 12345678901234567000. Si une API envoie des identifiants aussi grands, demandez-les sous forme de chaînes, ce que beaucoup d’API font déjà pour les identifiants 64 bits.

Comment corriger « Unexpected token » en JSON ?

« Unexpected token » signifie que le parseur JSON a rencontré un caractère qui ne peut pas apparaître à cet endroit. Lisez la ligne et la colonne indiquées dans l’erreur et regardez le texte juste avant. Les coupables habituels sont une virgule finale comme dans [1, 2, ], une clé sans guillemets, une chaîne entre guillemets simples, un commentaire // copié depuis un fichier de configuration, ou une valeur comme NaN ou Infinity que JavaScript affiche mais que JSON n’autorise pas.

L’erreur « Unexpected token < in JSON at position 0 » a une autre cause : le texte est une page HTML, généralement une page d’erreur ou une redirection vers la connexion, et non la réponse d’API attendue. Vérifiez le statut HTTP et l’en-tête Content-Type avant d’analyser la réponse. Quand l’entrée est un dict Python ou un littéral d’objet JavaScript, le Formateur JSON corrige les guillemets simples, True, False, None, les clés sans guillemets et les virgules finales, et liste chaque correction dans la ligne d’état.

Faut-il trier les clés JSON ? Bonnes pratiques d’indentation et de tri

L’ordre des clés n’a aucune signification dans un objet JSON : les trier par ordre alphabétique est donc sans risque et facilite la comparaison de deux versions. Trier les clés agit de façon récursive : les objets imbriqués sont triés aussi, tandis que les tableaux conservent leur ordre, car la position compte dans un tableau. Triez les deux versions, puis collez-les dans le Comparateur de textes : seules les vraies modifications de valeurs apparaissent, et non les clés simplement déplacées.

Pour l’indentation JSON, 2 espaces est le choix le plus courant dans les projets JavaScript et la documentation d’API, 4 espaces correspond à l’habitude de json.dumps(indent=4) en Python, et les tabulations laissent chaque lecteur choisir sa largeur. Le JSON minifié a sa place dans les payloads réseau, les variables d’environnement et les lignes de journal, où un enregistrement par ligne compte. Quel que soit votre choix, restez cohérent dans tout le dépôt pour que les reformatages n’encombrent pas la revue de code.

Quelque chose ne fonctionne pas, ou un résultat semble faux ? Signaler un problème avec cet outil