S
SoSimple.tools
Outil pour développeurs

Formateur et validateur JSON en ligne

Mettez en forme, minifiez et validez votre JSON instantanément. Tout se passe dans votre navigateur ; cette page n’envoie pas le texte collé

Fonctionne dans votre navigateur : vos données restent sur votre appareil

Sortie

Partager cet outil

Comment utiliser cet outil

  1. Collez votre JSON dans la zone « Entrée JSON brute ».
  2. Choisissez l'indentation : 2 espaces, 4 espaces ou tabulation.
  3. Cliquez sur Formater pour une mise en forme lisible ou sur Minifier pour retirer les espaces facultatifs.
  4. Lisez le statut (JSON valide ou erreur d'analyse) avec la taille brute et le nombre de nœuds, puis copiez le résultat.

Exemple concret

Collez {"name":"Ana","tags":["a","b"],} : le statut indique une erreur d'analyse, car JSON n'autorise pas de virgule finale. Supprimez la dernière virgule et cliquez sur Formater : le statut passe à JSON valide, avec 31 octets de taille brute et 4 nœuds ("Ana", le tableau tags et ses deux chaînes). Minifier renvoie ensuite la version compacte pour une requête ou un fichier de configuration. Gardez en tête que la sortie est régénérée à partir de la valeur analysée : les très grands entiers au-delà de 2^53 − 1 peuvent perdre en précision, et une clé répétée ne conserve que la dernière valeur.

Méthodologie

L'outil valide et réécrit le JSON avec les fonctions intégrées du navigateur, JSON.parse() et JSON.stringify(). La grammaire est celle de la RFC 8259 (et d'ECMA-404) : un document est une valeur unique (objet, tableau, chaîne, nombre, true, false ou null), les chaînes et les clés exigent des guillemets doubles, et les commentaires, virgules finales, NaN, undefined et nombres à zéro initial sont refusés.

Ce que font les boutons et les compteurs : « Formater » réindente la valeur analysée avec 2 espaces, 4 espaces ou une tabulation ; « Minifier » supprime tous les espaces facultatifs. La « taille brute » est la taille en octets UTF-8 de votre saisie, sans les espaces de début et de fin. Le « total de nœuds » compte chaque valeur imbriquée dans les objets et tableaux, sans le conteneur extérieur : {"a":[1,2]} compte 3 nœuds (le tableau et ses deux nombres).
Limites d'un aller-retour analyse/réécriture : La sortie est régénérée à partir de la valeur analysée, elle peut donc différer de l'entrée. Les entiers supérieurs à 9 007 199 254 740 991 (2^53 - 1) sont arrondis au double le plus proche : 12345678901234567890 devient 12345678901234567000. Un nombre comme 1e999 dépasse la capacité et s'affiche null. Si un objet répète une clé, seule la dernière valeur subsiste, et les clés qui ressemblent à des indices de tableau ("2", "10") passent en tête par ordre croissant. Vérifiez ces cas avant de vous fier à la sortie pour des identifiants ou des montants exacts.

Ce qu’un formateur JSON ne répare pas à votre place

La plupart des agacements viennent d'une attente que l'outil n'a jamais promise. Voici cinq cas, avec ce qui se passe réellement ici.

  • Croire que Formater répare un JSON cassé. L'outil analyse puis réécrit, rien de plus. Une entrée invalide affiche Erreur d'analyse, et la zone de sortie montre le message d'erreur de votre navigateur, pas une version corrigée.
  • Coller des lignes de journal ou du JSON Lines. Deux objets sur deux lignes ne forment pas un seul document JSON. {"a":1} suivi de {"a":2} échoue au début de la ligne 2. Collez un enregistrement à la fois, ou entourez-les de [ ] en les séparant par des virgules.
  • Coller une chaîne encodée deux fois. Un texte qui commence et finit par des guillemets et regorge de barres obliques inverses, comme "{\"id\":7}", est un JSON valide, mais c'est une simple chaîne. L'état indique JSON valide, le total de nœuds vaut 0 et rien n'est indenté. Retirez d'abord les guillemets extérieurs et les barres obliques.
  • S'attendre à ce que la taille brute baisse après Minifier. La taille brute est la longueur en octets de ce que vous avez collé : elle ne change pas. L'exemple { "name": "Ana", "tags": ["a", "b"] } pèse 37 octets, sa version minifiée 31. Recollez la sortie pour voir la nouvelle taille.
  • Penser que les nombres gardent leur écriture. Les valeurs sont réécrites à partir de la valeur analysée : 19.90 devient 19.9, 1E2 devient 100 et -0 devient 0. Si les zéros finaux comptent, stockez ces valeurs sous forme de chaînes.

Outils similaires

Questions fréquentes

Le JSON que je colle est-il envoyé à un serveur ? ▼

Cette page ne l'envoie pas. L'analyse et la mise en forme sont faites par du JavaScript exécuté dans votre propre navigateur, et la page ne conserve pas le texte. Ce qui se trouve hors de la page, comme les extensions du navigateur, un ordinateur partagé ou un enregistrement d'écran, échappe à son contrôle. Par prudence, changez toute clé d'API ou tout jeton que vous avez collé dans un outil en ligne auquel vous ne faites pas entièrement confiance.

Pourquoi mon JSON affiche-t-il une erreur d'analyse ? ▼

Les causes habituelles sont une virgule finale (comme dans {"name": "Ana",}), des guillemets simples au lieu de doubles, des clés sans guillemets, des commentaires, les valeurs NaN ou undefined, des nombres à zéro initial comme 007, et de vrais retours à la ligne ou tabulations à l'intérieur d'une chaîne. Le libellé exact du message vient de votre navigateur (Chrome, Firefox et Safari le formulent différemment) et désigne en général le caractère inattendu ou sa position.

Pourquoi un grand nombre ou une clé répétée a-t-il changé dans la sortie ? ▼

JSON.parse convertit chaque nombre en virgule flottante 64 bits, exact seulement jusqu'à 9 007 199 254 740 991. Les entiers plus longs, comme des identifiants de base de données à 19 chiffres, perdent leurs derniers chiffres. Quand une même clé apparaît deux fois dans un objet, la dernière valeur remplace la précédente sans avertissement. Si cela compte pour vous, conservez ces valeurs sous forme de chaînes dans les données sources ou comparez la sortie à l'original.

Puis-je ouvrir tsconfig.json, des réglages VS Code ou de très gros fichiers ? ▼

Les fichiers de style JSONC ou JSON5 (commentaires, virgules finales, guillemets simples) ne sont pas du JSON valide et seront refusés tant que vous n'aurez pas retiré ces éléments. Pour la taille, la limite est la mémoire et la patience de votre navigateur : la sortie est reconstruite à chaque frappe, donc coller plusieurs mégaoctets peut figer brièvement la page.