Formateur et convertisseur JSON

Formate, valide, minifie et convertit JSON.

Le formulaire interactif est prêt lorsque JavaScript est activé.

Mode d’emploi

Collez du JSON et choisissez une action. « Formater » l’indente avec 2 ou 4 espaces ou des tabulations ; « Valider » contrôle la syntaxe et affiche le type de la valeur racine, le nombre de clés ou d’éléments qu’elle contient au premier niveau (sans compter les éléments imbriqués) et le nombre de caractères ; « Minifier » supprime tous les espaces inutiles ; « Vue arborescente » affiche les objets et listes imbriqués sous forme d’arbre repliable. Ctrl+Enter (Cmd+Enter sur Mac) dans la zone de saisie lance le formatage.

La validation suit la norme JSON (RFC 8259) telle que votre navigateur l’interprète. Les noms de propriétés et les chaînes exigent des guillemets doubles ; true, false et null s’écrivent en minuscules ; les virgules finales, les commentaires, les guillemets simples, NaN et Infinity ne sont pas autorisés. En cas d’échec de l’analyse, le message d’erreur en indique la raison et, lorsque le navigateur indique une position (Chrome et Firefox le font pour la plupart des erreurs), la ligne et la colonne où l’analyse s’est arrêtée.

Le formatage et la minification lisent les données puis les réécrivent, si bien que certains éléments peuvent changer au-delà des espaces : les entiers supérieurs à 9 007 199 254 740 991 peuvent perdre en précision, les nombres de plus d’environ 17 chiffres significatifs sont arrondis, les nombres trop grands pour JavaScript (comme 1e400) deviennent null, 1.0 devient 1 et 1e3 devient 1000, une clé présente deux fois dans le même objet ne conserve que sa dernière valeur, les clés qui ressemblent à des entiers (comme "1" ou "10") passent en tête de leur objet dans l’ordre numérique, et la plupart des échappements \u deviennent les caractères qu’ils représentent. Stockez les identifiants longs sous forme de chaînes pour qu’ils restent exacts.

« JSON → CSV » transforme une liste d’objets en une ligne par objet, avec un en-tête formé de toutes les clés dans leur ordre de première apparition ; les valeurs manquantes et les valeurs null deviennent toutes deux des cellules vides, et les objets ou listes imbriqués sont écrits dans la cellule au format JSON. Un objet seul devient une ligne, et une liste de valeurs simples devient une seule colonne nommée value. Choisissez la virgule, le point-virgule ou la tabulation comme séparateur ; les tableurs des pays qui utilisent la virgule décimale attendent souvent le point-virgule.

La conversion en YAML écrit toutes les valeurs de type chaîne entre guillemets doubles et met entre guillemets les clés comme yes, no, on, off, true, false et null, afin que les analyseurs YAML 1.1 ne les lisent pas comme true, false ou null. Tout s’exécute dans votre navigateur ; rien n’est envoyé.

Exemple

Formate l’objet d’exemple avec indentation. Les valeurs restent identiques ; seule la présentation change.

  • {"name":"Ana","active":true}Devient un objet indenté à deux clés.
  • {"name":"Ana",}JSON invalide à cause de la virgule finale. Les navigateurs qui indiquent une position pointent vers la ligne 1, colonne 15.
  • [{"id":1,"tags":["a","b"]},{"id":2,"name":"Ana"}]CSV à trois colonnes : id, tags et name. La cellule tags contient la liste sous forme de texte JSON entre guillemets, et le name manquant du premier objet donne une cellule vide.
  • {"id":12345678901234567890}Valide, mais le formatage écrit 12345678901234567000 : le nombre dépasse la précision d’un nombre JavaScript.
  • {"country":"no"}YAML : country: "no", entre guillemets pour rester une chaîne.

Questions fréquentes

Le formatage modifie-t-il mes données ?

En général, seulement les espaces. Les exceptions sont les nombres très grands ou très précis, les nombres écrits 1.0 ou 1e3, les clés en double, les clés qui ressemblent à des entiers (qui passent en tête) et les échappements \u, réécrits sous leur forme standard. Les valeurs qui doivent rester exactes, comme les identifiants longs, doivent être des chaînes.

Puis-je utiliser des commentaires ou des virgules finales ?

Pas en JSON. JSON5 autorise les deux, et JSONC autorise les commentaires et, avec certains analyseurs, les virgules finales, mais les analyseurs JSON standard les rejettent. Supprimez-les avant de valider.

Pourquoi mon objet fonctionne-t-il en JavaScript mais échoue-t-il ici ?

Un littéral d’objet JavaScript accepte les clés sans guillemets, les guillemets simples, les virgules finales et les commentaires. JSON n’accepte rien de tout cela.

Mon JSON est-il envoyé sur un serveur ?

Non. L’analyse et la conversion se font localement dans votre navigateur.

Outils associés