Code Gratuit

Formateur et validateur JSON

Formatez, indentez, minifiez et validez du JSON en ligne : erreurs expliquées en français avec ligne et colonne, tri des clés et nombres conservés exactement.

Mis à jour le 8 octobre 2026
Mise en forme
Validité—Collez du JSON pour l'analyser
Taille——
Structure——
Résultat

Vos données restent dans votre navigateur : aucune saisie n'est envoyée à nos serveurs.

À propos de cet outil

Cet outil formate, minifie et valide du JSON. Collez un document compact ou mal indenté : il est remis en forme avec l'indentation de votre choix. Si la syntaxe est incorrecte, l'erreur est expliquée en français avec sa ligne, sa colonne et une piste de correction (virgule en trop, apostrophes, clé sans guillemets, commentaire…). L'analyse conserve les nombres et les chaînes tels que vous les avez écrits, y compris les entiers trop grands pour JavaScript.

Comment utiliser cet outil

  1. Collez votre JSON dans la zone de saisie, ou importez un fichier .json.
  2. Choisissez la mise en forme (2 espaces, 4 espaces, tabulation ou minifié) et triez les clés si vous le souhaitez.
  3. Lisez l'état : « JSON valide » avec la taille et la structure, ou le détail de l'erreur avec la ligne fautive repérée par un « ^ ».
  4. Copiez le résultat ou exportez-le dans un fichier.

JSON en bref : un format texte d'échange de données

JSON (JavaScript Object Notation) est un format texte léger pour représenter des données structurées. Né de la syntaxe des objets JavaScript au début des années 2000, il est aujourd'hui indépendant du langage : presque toutes les API web, de nombreux fichiers de configuration et des bases de données l'utilisent. Il est défini par la norme RFC 8259 et par ECMA-404, et son type MIME est application/json.

Un document JSON est construit à partir de seulement six types de valeurs :

  • objet : des paires « clé » : valeur entre accolades, {"nom": "Outilia", "version": 2} ;
  • tableau : une liste ordonnée entre crochets, [1, 2, 3] ;
  • chaîne de caractères entre guillemets doubles, "bonjour" ;
  • nombre en notation décimale, -12.5 ou 3e8 ;
  • booléen : true ou false ;
  • null, qui représente l'absence de valeur.

Le texte échangé entre systèmes doit être encodé en UTF-8. La norme demande de ne pas ajouter de marque d'ordre des octets (BOM) au début d'un document JSON et autorise les lecteurs à l'ignorer ; l'outil le fait et vous le signale.

Valide en JavaScript, invalide en JSON : les différences à connaître

La plupart des erreurs de syntaxe viennent d'un réflexe : écrire du JSON comme on écrit un objet JavaScript. Or JSON est volontairement plus strict, pour que tous les langages puissent le lire de la même façon.

Ce que JavaScript accepte et ce que JSON exige
Écriture fautivePourquoi JSON la refuseÉcriture correcte
{nom: "x"}Les clés doivent être des chaînes entre guillemets doubles.{"nom": "x"}
{'nom': 'x'}Les apostrophes ne délimitent pas une chaîne JSON.{"nom": "x"}
[1, 2, 3,]Pas de virgule après le dernier élément.[1, 2, 3]
{"a": 1 // note}JSON n'a pas de commentaires.Supprimez le commentaire.
{"a": undefined}undefined, NaN et Infinity n'existent pas en JSON.{"a": null}
{"n": 007}Un nombre ne commence pas par un zéro (ni par + ni par un point).{"n": 7} ou {"n": "007"}
Retour à la ligne dans une chaîneLes caractères de contrôle doivent être échappés."ligne 1\nligne 2"
True, NULLLes trois mots réservés sont en minuscules.true, null

Dans une chaîne, seules huit séquences d'échappement sont permises : \", \\, \/, \b, \f, \n, \r, \t, ainsi que \uXXXX pour un caractère Unicode. Les caractères accentués n'ont pas besoin d'être échappés : "été" est valide tel quel en UTF-8.

Lire un message d'erreur : où chercher la faute

L'outil indique la ligne et la colonne de l'erreur, mais l'endroit où l'analyse échoue n'est pas toujours celui où se trouve la faute. Voici quelques cas typiques :

  • « Il manque une virgule entre deux éléments » : le problème se trouve juste avant le caractère signalé. Cherchez la fin de l'élément précédent.
  • « Fin de texte inattendue : … n'est pas refermé » : une accolade ou un crochet ouvert plus haut n'a pas de fermeture. L'outil donne la ligne où l'objet ou le tableau a été ouvert. Un éditeur qui souligne les paires de parenthèses aide à retrouver le bon.
  • « Fermeture inattendue » : une accolade } et un crochet ] sont mélangés. Vérifiez que chaque objet est fermé par } et chaque tableau par ].
  • « Contenu inattendu après la fin du JSON » : le texte contient plusieurs documents à la suite. Placez-les dans un tableau, ou utilisez le format JSON Lines si chaque ligne est un document indépendant.
  • Une erreur sur le tout premier caractère alors que le texte semble correct : il s'agit souvent d'un texte copié avec un caractère invisible (BOM, espace insécable) ou d'une réponse HTML d'erreur qui a remplacé le JSON attendu.
Astuce Si un fichier produit par un programme est invalide, ne corrigez pas seulement le fichier : cherchez pourquoi le programme l'a généré ainsi. Une virgule finale ou un commentaire révèle souvent qu'un fichier a été écrit à la main au lieu d'être produit par une bibliothèque de sérialisation.

Nombres : pourquoi un grand identifiant peut changer de valeur

JSON ne fixe aucune limite à la taille des nombres : 12345678901234567890 est un nombre valide. En revanche, les programmes qui le lisent, eux, en ont une. JavaScript, comme beaucoup de langages, convertit tous les nombres en flottants à 64 bits (norme IEEE 754), qui représentent exactement les entiers jusqu'à 9 007 199 254 740 991 (253 − 1, la constante Number.MAX_SAFE_INTEGER). Au-delà, les derniers chiffres sont arrondis. La RFC 8259 le précise : seuls les entiers de −(253) + 1 à (253) − 1 sont garantis identiques d'un système à l'autre.

Exemple réel

Les identifiants de publications de X sont des entiers de 64 bits. La documentation de X donne l'exemple de 10765432100123456789, qui s'affiche 10765432100123458000 dans un programme JavaScript. C'est pourquoi l'API renvoie aussi chaque identifiant sous forme de chaîne de caractères (id_str) et recommande de l'utiliser.

Cet outil, lui, recopie chaque nombre tel que vous l'avez écrit : il ne le convertit jamais en flottant, et vous prévient lorsqu'un entier dépasse la limite sûre. Pour échanger des identifiants très grands, des numéros de compte ou des montants exacts, trois bonnes pratiques :

  • Transmettez-les sous forme de chaîne ("id": "10765432100123456789"). C'est ce que recommande aussi le format I-JSON (RFC 7493), qui restreint JSON aux usages interopérables.
  • Exprimez les montants en unités entières (des centimes plutôt que des euros) ou en chaîne décimale, car 0,1 + 0,2 ne donne pas exactement 0,3 en flottant.
  • Utilisez BigInt côté JavaScript avec un lecteur JSON qui le permet, si vous devez calculer sur ces valeurs.

JSON, JSONC, JSON5, JSON Lines : des cousins à ne pas confondre

  • JSONC (« JSON avec commentaires ») : variante qui accepte les commentaires et, selon les outils, les virgules finales. Les fichiers de configuration de Visual Studio Code ou tsconfig.json l'utilisent. Ils ne sont pas du JSON valide au sens strict : un lecteur JSON standard les refusera.
  • JSON5 : sur-ensemble de JSON qui ajoute clés sans guillemets, apostrophes, commentaires, virgules finales et nombres hexadécimaux. Il ressemble davantage à du JavaScript.
  • JSON Lines (.jsonl) : un document JSON complet par ligne, pratique pour les journaux et les gros jeux de données qu'on lit au fil de l'eau. Chaque ligne est valide séparément, pas le fichier entier.

Cet outil valide le JSON strict de la RFC 8259. Pour tester un fichier JSONC ou JSON5, retirez d'abord les commentaires et les virgules finales, ou vérifiez ligne par ligne un fichier JSON Lines.

Indenter, minifier, trier : quand utiliser chaque option

  • Indenter (2 espaces, 4 espaces ou tabulation) rend le document lisible par un humain et produit des différences claires dans un gestionnaire de versions comme Git. Choisissez la convention de votre projet.
  • Minifier supprime tous les espaces et retours à la ligne. C'est utile pour réduire un document stocké ou transmis, mais l'économie est surtout réelle avant compression : les serveurs envoient généralement le JSON compressé (gzip ou Brotli), qui absorbe déjà l'essentiel des espaces répétés.
  • Trier les clés par ordre alphabétique donne une représentation canonique, pratique pour comparer deux documents, produire des différences stables ou calculer une empreinte. C'est sans danger, car la norme décrit un objet JSON comme une collection non ordonnée de paires clé-valeur : aucun programme correct ne doit dépendre de l'ordre des clés.

Les clés en double ({"a": 1, "a": 2}) sont, elles, un piège : la norme dit que les noms « devraient » être uniques et prévient que les résultats varient d'un lecteur à l'autre. Certains gardent la dernière valeur, d'autres refusent le document. L'outil les repère et les signale.

Pour transformer un tableau JSON en tableur ou l'inverse, essayez le convertisseur CSV ↔ JSON ; pour lire le contenu d'un jeton d'authentification, le décodeur de JWT.

Questions fréquentes

Comment trouver l'erreur dans mon JSON ?

Si le JSON est invalide, l'outil affiche un message en français, la ligne et la colonne, puis la ligne fautive avec un repère « ^ » sous le caractère en cause. Le bouton « Placer le curseur sur l'erreur » sélectionne ce caractère dans la zone de saisie. Les causes les plus fréquentes sont une virgule en trop à la fin d'une liste, des apostrophes à la place des guillemets, des clés sans guillemets et des commentaires.

Pourquoi mon JSON est-il refusé alors qu'il fonctionne en JavaScript ?

Un objet JavaScript accepte des écritures que JSON interdit : clés sans guillemets, apostrophes, virgule finale, commentaires, undefined ou NaN. JSON est un format d'échange plus strict, défini par la norme RFC 8259.

Les grands nombres sont-ils altérés ?

Non. La plupart des formateurs lisent les nombres comme des flottants et arrondissent les entiers supérieurs à 9 007 199 254 740 991 : un identifiant de 19 chiffres perd alors ses derniers chiffres. Cet outil recopie chaque nombre exactement comme vous l'avez écrit.

Puis-je minifier un JSON ?

Oui : choisissez « Minifié ». Tous les espaces et retours à la ligne superflus sont retirés, sans toucher au contenu des chaînes de caractères.

Mes données sont-elles envoyées à un serveur ?

Non, l'analyse et la mise en forme se font entièrement dans votre navigateur : rien n'est transmis.

↑ ↓ naviguerEntrée ouvrirÉchap fermer