UltKit

Formateur et validateur JSON

Collez votre JSON pour l'indenter, le minifier ou trier ses clés. S'il ne peut pas être analysé, le formateur indique la ligne et la colonne où l'analyseur s'est arrêté, avec un repère sous l'erreur : une virgule manquante dans une réponse de 3 000 lignes se trouve en quelques secondes.

Sortie

0 caractères · 0 mots · 0 lignes

0 caractères · 0 mots · 0 lignes

Fonctionne entièrement dans cet onglet du navigateur. Votre texte n’est jamais envoyé ni stocké.

Types de valeurs JSON

La RFC 8259 autorise exactement ces valeurs. Les objets et les tableaux s’imbriquent ; tout le reste est une feuille.

TypeExempleRègle
Objet{"id": 7, "tags": ["a"]}Les clés doivent être des chaînes entre guillemets doubles ; les membres sont séparés par des virgules, sans virgule finale.
Tableau[1, "two", null]Liste ordonnée de valeurs quelconques, types mixtes autorisés.
Chaîne"caf\u00e9 \"quoted\""Guillemets doubles uniquement ; les caractères de contrôle doivent être échappés ; les échappements \u utilisent quatre chiffres hexadécimaux.
Nombre-12.5e3Décimal uniquement : signe moins facultatif, pas de zéro initial, fraction et exposant facultatifs. Pas de NaN ni d’Infinity.
true, false et nulltrueEn minuscules, sans guillemets.

Ce que l’analyseur rejette

Chaque entrée ci-dessous a été soumise au même JSON.parse que celui du formateur lors de la construction de cette page.

EntréeProblèmeJSON.parse
{"a": 1,}Virgule finaleRejeté
{'a': 1}Chaînes entre apostrophesRejeté
{"a": 1 /* note */}CommentairesRejeté
{a: 1}Clé sans guillemetsRejeté
{"n": NaN}NaN n’est pas un nombre JSONRejeté
{"n": 012}Zéro initialRejeté
{"n": 0x1F}Nombre hexadécimalRejeté

Échappements dans les chaînes JSON

CaractèreÉcrit en JSON
Guillemet double"\""
Barre oblique inverse"\\"
Saut de ligne"\n"
Tabulation"\t"
Retour chariot"\r"
Caractère de contrôle U+0001"\u0001"
Barre oblique (échappement facultatif)"/"
Lettre non ASCII (échappement inutile)"é"

Les règles d'un document JSON valide

Le JSON est défini par la RFC 8259 (identique sur le fond à ECMA-404). Un document est une valeur unique : un objet, un tableau, une chaîne, un nombre, true, false ou null. Les clés d'un objet sont toujours des chaînes entre guillemets doubles. Les chaînes n'utilisent que des guillemets doubles et doivent échapper le guillemet, la barre oblique inverse et tout caractère de contrôle inférieur à U+0020 ; les tabulations et les retours à la ligne dans une chaîne s'écrivent donc \t et \n. La RFC 8259 impose aussi l'UTF-8 pour le JSON échangé entre systèmes.

Les nombres sont décimaux : pas de zéros en tête, pas d'hexadécimal, pas de NaN ni d'Infinity, et pas de signe plus devant. Le format n'admet ni commentaires ni virgules finales. Ces deux dernières règles causent la plupart des erreurs courantes, car les littéraux d'objet JavaScript, JSON5 et de nombreux fichiers de configuration autorisent les deux. Le tableau de référence ci-dessous a été produit en soumettant chaque erreur fréquente au même analyseur que celui du formateur.

Indenter, minifier, trier

La mise en forme ajoute des retours à la ligne et une indentation pour rendre la structure lisible ; deux espaces sont le style le plus courant dans les projets JavaScript, quatre espaces le choix habituel avec json.dumps(indent=4) de Python, et les tabulations laissent chacun choisir sa largeur. La minification supprime tous les espaces superflus, ce qui allège les données des API et permet de tenir sur une seule ligne pour des journaux ou des variables d'environnement.

Trier les clés classe par ordre alphabétique les membres de chaque objet, de manière récursive. Les objets JSON sont non ordonnés par définition : le tri ne change donc pas le sens, mais il facilite beaucoup la comparaison de deux documents issus de systèmes différents. Attention : l'analyse convertit les nombres en doubles JavaScript, et les entiers supérieurs à 2^53 (9 007 199 254 740 992), comme certains identifiants de base de données, perdent en précision lors du reformatage ; conservez-les sous forme de chaînes.

Du JSON vers d'autres formats

Un document mis en forme se lit mieux, mais vous pouvez avoir besoin d'une autre forme. Un tableau d'objets devient une feuille de calcul avec JSON en CSV, et le convertisseur de données fait passer des fichiers entiers entre JSON, XML, YAML et CSV.

Questions fréquentes

Pourquoi le formateur refuse-t-il mon JSON qui contient des commentaires ?
Le JSON standard n'a pas de syntaxe de commentaire ; la RFC 8259 l'exclut volontairement. Supprimez les commentaires, ou gardez le fichier en JSONC ou JSON5 si l'outil qui le lit prend en charge ces formats.
Que signifie « Unexpected token » dans une erreur JSON ?
L'analyseur a rencontré un caractère qui ne peut pas figurer à cet endroit, comme une apostrophe, une virgule finale avant } ou une clé sans guillemets. La ligne et la colonne indiquées désignent ce caractère.
Trier les clés modifie-t-il mes données ?
Non. L'ordre des membres d'un objet n'a aucune signification en JSON : le document trié est donc équivalent. L'ordre des tableaux est significatif et n'est jamais modifié.
Pourquoi un nombre long a-t-il changé après le formatage ?
JavaScript stocke les nombres en virgule flottante 64 bits, qui ne représentent exactement les entiers que jusqu'à 2^53. Les identifiants plus grands sont arrondis à l'analyse ; transmettez-les sous forme de chaînes pour conserver tous les chiffres.
Puis-je formater un fichier JSON au lieu de le coller ?
Ouvrez le fichier dans un éditeur de texte, sélectionnez tout et collez-le ici. Les très gros fichiers de plusieurs dizaines de mégaoctets peuvent ralentir l'onglet pendant l'affichage dans la zone de texte.