Formateur & Minificateur JSON
Outil JSON en ligne gratuit pour formater, embellir, minifier et valider vos données avec surlignage syntaxique. Parfait pour les développeurs qui manipulent des API JSON, des fichiers de configuration et des structures de données.
Formateur JSON - Formater et valider du JSON en ligne
Un outil en ligne puissant qui vous aide à formater, embellir, minifier et valider des données JSON. Il propose un surlignage syntaxique, la détection d'erreurs avec localisation précise et plusieurs options de formatage. Idéal pour les développeurs, testeurs d'API et toutes les personnes qui travaillent avec du JSON.
Comment le formateur gère-t-il un JSON invalide ?
Le formateur exécute d'abord votre entrée à travers une passe stricte de JSON.parse. Si l'analyse échoue, il retourne l'erreur avec le décalage exact en octets, la ligne et la colonne du caractère fautif, plus un indice sur la cause probable : virgule finale, guillemets simples au lieu de doubles, clés sans guillemets, bloc de commentaire, ou chaîne non terminée. Il ne « répare » jamais silencieusement votre JSON, car cela masquerait de vrais bugs chez les producteurs en amont. Si vous avez besoin d'une analyse tolérante pour des données écrites à la main (commentaires, virgules finales, clés sans guillemets), basculez vers le mode JSON5 ou JSONC si disponible — mais comprenez que la sortie de ces modes n'est plus du JSON ECMA-404 et peut être rejetée par les consommateurs en aval. L'analyseur strict est conforme à la RFC 8259 et ECMA-404, les deux normes équivalentes qui définissent JSON.
Quelle est la différence entre JSON, JSON5, JSONC et NDJSON ?
JSON (RFC 8259 / ECMA-404) est le format canonique strict : clés entre guillemets doubles, pas de commentaires, pas de virgules finales. JSONC (« JSON avec commentaires ») est la variante VS Code qui autorise les commentaires // et /* */ ; il est utilisé pour tsconfig.json et les fichiers de paramètres. JSON5 est un sur-ensemble plus riche qui ajoute des clés identifiant ECMAScript sans guillemets, des guillemets simples, des chaînes multi-lignes, des nombres hexadécimaux, des points décimaux initiaux/finaux, +Infinity, NaN et des virgules finales. NDJSON (JSON délimité par nouvelle ligne) est un format de streaming où chaque ligne est une valeur JSON complète, utilisé pour les fichiers de log, les jeux de données d'apprentissage automatique et les flux d'API. Ils NE sont PAS interchangeables : un analyseur JSON strict rejettera JSONC et JSON5. Choisissez selon le consommateur : les APIs exigent presque toujours du JSON strict.
Pourquoi mon JSON contient-il soudainement des nombres comme 9999999999999999 devenant 10000000000000000 ?
JSON lui-même n'impose pas de limite à la précision numérique, mais la plupart des analyseurs — y compris JSON.parse de JavaScript — stockent les nombres comme des flottants IEEE 754 double précision, qui ne peuvent représenter exactement que les entiers jusqu'à 2^53 - 1 (environ 9,007 quadrillions, ou Number.MAX_SAFE_INTEGER). Les entiers plus grands sont silencieusement arrondis au double représentable le plus proche. Cela affecte les APIs qui retournent des IDs 64 bits (snowflakes Twitter, Discord, clés primaires BIGINT de bases de données) — au moment où JavaScript les analyse, les derniers chiffres sont faux. Solutions : (1) le serveur doit sérialiser les grands entiers en chaînes ; (2) utilisez un analyseur conscient de BigInt comme json-bigint ou le paramètre reviver de JSON.parse pour intercepter le token brut ; (3) analysez manuellement comme chaîne.
Devrais-je minifier le JSON pour les APIs de production ?
Oui pour les endpoints sensibles à la taille, non pour tout le reste. La minification supprime tous les espaces blancs (espaces, tabulations, sauts de ligne autour de : et ,) et économise typiquement 20-40% des octets selon la longueur des clés et la distribution des valeurs. Les économies de transmission sont largement effacées une fois que la compression HTTP gzip ou Brotli entre en jeu — les compresseurs modernes gèrent efficacement les espaces blancs — donc le gain pratique sur le transport compressé est souvent inférieur à 5%. Le compromis : le JSON minifié est illisible dans les DevTools du navigateur et les agrégateurs de logs, rendant le débogage en production plus difficile. Meilleure pratique : servir du JSON joliment formaté en développement et sur les APIs internes, JSON minifié seulement pour les endpoints publics à fort trafic où chaque octet compte.

Pourquoi le formateur trie-t-il mes clés, et puis-je le désactiver ?
Le tri des clés est optionnel et désactivé par défaut dans cet outil — le formatage préserve l'ordre original des clés de votre entrée. Certains workflows bénéficient de clés triées : sortie déterministe pour les diffs git, JSON canonique pour la signature cryptographique (JCS, RFC 8785) et conflits de fusion réduits. D'autres workflows dépendent de l'ordre d'insertion : schémas OpenAPI où les champs requis sont listés en premier, enregistrements de log où le timestamp doit venir en premier, fichiers de configuration suivant un modèle documenté. Les objets JavaScript préservent l'ordre d'insertion pour les clés chaîne selon ES2015, et JSON.stringify reflète cet ordre. Si vous voulez une sortie triée, l'option « Trier les clés » de cet outil effectue un tri récursif profond utilisant une comparaison consciente de la locale.
Comment trouver une valeur ou un chemin spécifique dans un gros fichier JSON ?
Pour l'exploration ad-hoc, JSONPath ($..book[?(@.price<10)]) et JMESPath (locations[*].name | sort(@)) sont des langages de requête conçus exactement pour cela — les deux ont des implémentations JavaScript. L'outil en ligne de commande jq est l'option la plus puissante pour les pipelines shell : jq '.users[] | select(.age > 30) | .name' filtre et projette en une expression. Pour la navigation arborescente dans ce formateur, utilisez les nœuds repliables pour explorer visuellement, puis utilisez Ctrl+F pour la recherche textuelle. Pour les fichiers vraiment massifs (au-dessus de 100 Mo), évitez de charger tout le document en mémoire — utilisez des analyseurs de streaming comme Node.js stream-json, Python ijson, ou Decoder de Go encoding/json pour traiter les tokens un par un. Indexer dans une base de données (SQLite JSON1, Postgres JSONB) est la bonne réponse une fois qu'un fichier est interrogé de manière répétée.
Pourquoi mon analyseur rejette-t-il les clés dupliquées dans un objet ?
RFC 8259 dit que le comportement est défini par l'implémentation : « Les noms dans un objet DEVRAIENT être uniques ». La plupart des analyseurs ne lèvent pas d'erreur ; ils conservent silencieusement la dernière valeur vue (JSON.parse de JavaScript), ou la première (certaines bibliothèques Go avec unmarshalers personnalisés), ou les fusionnent (rare). Cette ambiguïté est une vraie source de bugs et de problèmes de sécurité — voir les Vulnérabilités d'Interopérabilité JSON (motifs CVE dans le HTTP smuggling et la vérification JWT). La pratique la plus sûre est de rejeter les doublons : le mode strict de cet outil lève une erreur claire et pointe vers la deuxième occurrence pour que vous puissiez corriger le producteur. Si vous devez tolérer les doublons pour des raisons historiques, documentez quelle valeur gagne et testez-la unitairement. JCS (RFC 8785) interdit catégoriquement les clés dupliquées.
Comment échapper des caractères spéciaux comme nouvelle ligne, tabulation ou guillemet dans une chaîne JSON ?
Les chaînes JSON utilisent un petit ensemble d'échappements barre oblique inverse définis dans la RFC 8259 section 7 : \" pour guillemet double, \\ pour barre inverse, \/ pour barre oblique (optionnel), \b pour retour arrière, \f pour saut de page, \n pour nouvelle ligne, \r pour retour chariot, \t pour tabulation, et \uXXXX pour tout point de code Unicode jusqu'à U+FFFF. Les points de code au-dessus de U+FFFF (emoji, CJK rares) utilisent une paire de substitution UTF-16 : \uD83D\uDE00 pour 😀. Les caractères de contrôle U+0000 à U+001F DOIVENT être échappés — un octet de nouvelle ligne littéral dans une chaîne JSON est invalide. L'échappement de barre oblique est permis mais pas requis ; de nombreux outils l'échappent dans </script> pour se défendre contre l'injection HTML quand le JSON est intégré dans des balises <script>. Ce formateur préserve votre style d'échappement lors d'un round trip.
Fonctionnalités clés
- Formater du JSON avec une indentation personnalisable (2, 4, 8 espaces ou tabulations)
- Minifier du JSON pour réduire la taille en production
- Valider la syntaxe JSON avec localisation précise des erreurs
- Surlignage syntaxique pour une meilleure lisibilité
- Trier les clés des objets par ordre alphabétique
- Statistiques en temps réel (caractères, lignes, taille)
- Copier le JSON formaté dans le presse-papiers
- Télécharger le JSON formaté en fichier .json
- Téléverser des fichiers JSON à formater
- Mode sombre pris en charge
- Aucune limite de taille de fichier
- Traitement 100 % côté client - vos données ne quittent jamais le navigateur
- Fonctionne hors ligne après le premier chargement
- Interface responsive adaptée au mobile
