Aller au contenu

Formateur et validateur JSON

Collez du JSON pour le mettre en forme avec 2, 4 ou 8 espaces, le réduire sur une seule ligne, ou simplement vérifier qu'il s'analyse. Le JSON valide revient avec une coloration syntaxique et la taille avant et après ; le JSON invalide revient avec le message d'erreur de votre navigateur. Gratuit, sans inscription, et rien de ce que vous collez ne quitte votre navigateur.

0 ligne · 0 octet

Comment utiliser le formateur JSON

  1. 1. Collez votre JSON. D'une simple valeur jusqu'à une grande réponse d'API. La zone compte les lignes et les octets au fil de la saisie.
  2. 2. Choisissez une indentation. Sélectionnez 2, 4 ou 8 espaces. Ce réglage ne concerne que la mise en forme.
  3. 3. Choisissez une action. Mettre en forme ajoute l'indentation et les sauts de ligne, Minifier supprime chaque espace facultatif et chaque saut de ligne, et Valider uniquement vérifie la syntaxe et affiche un verdict vert ou rouge sans produire de sortie.
  4. 4. Lisez le résultat. Le JSON valide s'affiche avec une coloration syntaxique (clés en violet, chaînes en vert, nombres en bleu, true et false en orange, null en rouge), avec la taille d'entrée, la taille de sortie et la variation en pourcentage. Le JSON invalide affiche plutôt le message de l'analyseur. Copier le résultat copie ce que vous voyez.

Ce qui constitue un JSON valide

L'outil transmet votre texte à l'analyseur JSON strict du moteur JavaScript, qui accepte ce que prescrit la norme du format, RFC 8259 (la même grammaire que ECMA-404), et rien de plus. Cette norme est plus stricte qu'un littéral d'objet JavaScript, ce qui explique pourquoi du code qui fonctionne dans un script échoue souvent ici. Les erreurs les plus fréquentes :

Causes courantes d'échec de l'analyse JSON
ErreurExempleCorrection
Virgule finale{"a": 1,}Supprimez la dernière virgule.
Guillemets simples{'a': 1}Utilisez des guillemets doubles pour chaque clé et chaque chaîne.
Clé sans guillemets{a: 1}Mettez-la entre guillemets : {"a": 1}.
Commentaire// note ou /* note */Le JSON ne connaît pas les commentaires ; supprimez-les.
Zéro initial ou signe plus007, +5Écrivez 7 et 5.
NaN, Infinity ou undefined{"x": NaN}Ces valeurs n'existent pas en JSON ; utilisez null ou une chaîne.
Saut de ligne brut dans une chaîneun saut de ligne entre guillemetsÉcrivez-le avec les deux caractères \n.
Virgule manquante{"a": 1 "b": 2}Séparez les membres par des virgules.

Un simple 42, "text" ou null est aussi valide : depuis la RFC 7159, un texte JSON peut être n'importe quelle valeur, et pas seulement un objet ou un tableau. True ou NULL avec une majuscule ne le sont pas : les trois littéraux sont en minuscules.

Ce que la mise en forme modifie

Cet outil analyse votre JSON puis le réécrit : le résultat contient donc les mêmes données dans une nouvelle présentation, et non une copie caractère par caractère de votre texte. Quatre points peuvent différer ; les deux premiers comptent si vous mettez en forme du JSON destiné à un autre système :

  • Les grands entiers perdent en précision. Les nombres JavaScript sont des flottants de 64 bits, donc les entiers supérieurs à 9 007 199 254 740 991 (253 − 1) sont arrondis. 9007199254740993 redevient 9007199254740992. Si vos identifiants sont aussi grands, conservez-les sous forme de chaînes.
  • Les clés en double se réduisent à une seule. La RFC 8259 indique que les noms devraient être uniques sans interdire les répétitions ; cet outil garde la dernière valeur et supprime les précédentes.
  • Les clés de type entier passent en premier. En JavaScript, des clés comme "1" et "2" sont listées avant les autres, par ordre croissant : {"b":1,"2":1,"1":1} est donc réécrit {"1":1,"2":1,"b":1}. Les autres clés gardent votre ordre.
  • Les nombres et les échappements sont réécrits. 1.50 devient 1.5, 1e2 devient 100, et \u00e9 devient é.

Exemple détaillé

Prenez cette entrée de 119 octets, qui comprend un grand identifiant, un zéro final, un exposant et un échappement :

Entrée

{"title":"APA Manual","year":2020,"tags":["style","7th"],"id":9007199254740993,"price":1.50,"x":1e2,"name":"caf\u00e9"}

Mettre en forme avec 2 espaces produit 156 octets (+31 %), un membre par ligne, avec "id": 9007199254740992, "price": 1.5, "x": 100 et "name": "café". Minifier produit 114 octets (-4 %) sur une seule ligne, avec les mêmes modifications. Rien d'autre dans les données ne change. Les tailles sont comptées en octets UTF-8, donc le é compte pour deux.

De quel outil avez-vous besoin ?

Cette page traite du JSON lui-même. Si vos données sont dans un autre format, un outil voisin convient : CSV vers JSON pour les tableurs, Convertisseur YAML vers JSON et Convertisseur XML vers JSON (à venir) pour ces formats, Formateur XML pour les documents XML et Formateur HTML pour le balisage.

Questions fréquentes

Que fait un formateur JSON ?
Il analyse le JSON puis le réécrit avec une indentation cohérente et un membre par ligne, de sorte qu'une réponse d'API minifiée devient lisible. Comme il doit d'abord analyser le texte, il sert aussi de validateur : un texte qui n'est pas du JSON valide produit une erreur au lieu d'une sortie.
Pourquoi mon JSON est-il signalé comme invalide ?
En général pour l'une des erreurs du tableau ci-dessus : une virgule finale, des guillemets simples, une clé sans guillemets, un commentaire ou une virgule manquante. Le message vient de l'analyseur JSON de votre navigateur ; sa formulation diffère donc entre Chrome, Firefox et Safari, et il peut ou non indiquer une position. Cherchez le problème au point indiqué ou juste avant.
Peut-on mettre en forme du JSON avec des commentaires, du JSON5 ou du JSONC ?
Non. Les commentaires, les virgules finales et les guillemets simples ne font pas partie du JSON, et cet outil utilise un analyseur strict. Supprimez-les d'abord, ou convertissez le fichier en JSON standard dans votre éditeur.
Quelle est la différence entre Mettre en forme, Minifier et Valider uniquement ?
Mettre en forme ajoute l'indentation et les sauts de ligne, Minifier supprime tous les espaces facultatifs pour obtenir le texte le plus court, et Valider uniquement vérifie la syntaxe et affiche un verdict sans sortie. Les trois utilisent le même analyseur : un document qui passe l'un passe donc les trois.
Pourquoi un nombre de mon JSON a-t-il changé ?
L'outil lit les nombres comme des flottants JavaScript et les réaffiche sous leur forme la plus courte en JavaScript. Cela transforme 1.50 en 1.5 et 1e2 en 100, et arrondit les entiers supérieurs à 253 − 1. Conservez sous forme de chaînes les identifiants très grands s'ils doivent rester exacts.
Mon JSON est-il envoyé quelque part ?
Non. L'analyse, la mise en forme et la coloration s'exécutent dans votre navigateur, et le texte que vous collez n'est envoyé ni à CitationEasy ni à qui que ce soit d'autre. Effacez la zone lorsque vous avez fini, sur un ordinateur partagé.
Peut-on trier les clés ou utiliser des tabulations pour l'indentation ?
Pas ici. Les choix d'indentation sont 2, 4 ou 8 espaces, et les clés gardent l'ordre de votre saisie, à l'exception des clés de type entier qui passent en premier, comme expliqué plus haut.

Outils associés

Autres outils : Données, balisage et code