À propos de cet outil
Le formatage JSON (souvent appelé jolie impression ou embellissement) prend du JSON compact et ajoute des espaces (sauts de ligne, indentation, espacement cohérent) pour rendre la structure visible aux lecteurs humains. Compact JSON est le format idéal pour la transmission : il minimise les octets sur le réseau et le stockage. Le JSON formaté est le format idéal pour l'inspection : la hiérarchie en retrait révèle d'un seul coup d'œil la structure imbriquée, donne du sens aux différences et permet aux développeurs de localiser des champs spécifiques sans analyser mentalement le document.
Ce formateur analyse l'entrée au format JSON pour confirmer qu'elle est valide, puis la réémet avec une indentation cohérente. Une entrée invalide produit une erreur pointant vers le problème de syntaxe. Les entrées valides sont reformatées, quel que soit le degré de compacité ou de désordre de la source. L'indentation est par défaut de deux espaces, ce qui correspond à la convention JavaScript la plus courante.
Le formateur propose également une minification (l'opération inverse), qui supprime tous les espaces inutiles pour produire le plus petit JSON valide. La production réduite est utile pour la transmission de la production ; la sortie formatée est utile pour le développement et le débogage.
Pourquoi formater JSON
La lecture de JSON profondément imbriqué sans indentation est essentiellement impossible : la structure est techniquement présente mais invisible. Même un JSON modérément complexe bénéficie énormément du formatage. Les réviseurs de code, les débogueurs d'API et toute personne essayant de comprendre une charge utile de données doivent formater JSON pour voir ce qui s'y trouve réellement.
Le formatage détecte également les erreurs. Si JSON ne parvient pas à être analysé lors du formatage, le message d'erreur identifie la position exacte du problème de syntaxe : souvent une virgule manquante, une clé non citée ou une virgule de fin parasite que le système producteur n'a pas signalée. Un formateur est le validateur JSON le plus simple disponible.
Détails techniques
Le formateur utilise JSON.parse et JSON.stringify, la même paire fournie par chaque runtime JavaScript. L'analyse suit la RFC 8259 (la spécification JSON actuelle), acceptant le JSON strict mais rejetant les littéraux d'objet JavaScript, les commentaires, les virgules de fin et autres extensions JSON5.
JSON.stringify accepte un argument d'indentation : un nombre (espaces) ou une chaîne (caractère d'indentation personnalisé, tel qu'une tabulation). Le formateur expose les deux options. La sortie est triée dans l'ordre source des objets (depuis ES2015, l'ordre d'insertion des propriétés est préservé dans tous les principaux moteurs).
Cas extrêmes : les grands nombres au-delà de Number.MAX_SAFE_INTEGER perdent en précision lors de l'analyse (une limitation JSON connue ; utilisez des valeurs de chaîne pour les ID qui dépassent 2 ^ 53). Les échappements Unicode dans les chaînes sont conservés littéralement. Les espaces de fin sont supprimés de chaque ligne.
Questions fréquentes
- Quels types d’erreurs JSON cet outil détecte-t-il ?
- L'outil détecte les virgules manquantes, les crochets/accolades sans correspondance, les chaînes non valides qui s'échappent, les virgules de fin, les chaînes entre guillemets simples et d'autres violations de syntaxe conformément à la spécification RFC 8259 JSON.
- Peut-il gérer de très gros fichiers JSON ?
- Oui. Le formateur traite JSON dans votre navigateur à l'aide de l'analyse JavaScript native, de sorte qu'il gère efficacement les fichiers jusqu'à plusieurs mégaoctets. Pour les fichiers extrêmement volumineux (50 Mo+), le temps de traitement dépend de votre appareil.
- Prend-il en charge JSON avec commentaires (JSONC) ?
- Le JSON standard n'autorise pas les commentaires. Si votre entrée contient des commentaires, le validateur les signalera comme des erreurs. Pour la prise en charge de JSONC, supprimez les commentaires avant le formatage.
- Le formatage modifiera-t-il les valeurs de mes données ?
- Non. Le formatage ajuste uniquement les espaces et l'indentation : vos types de données, leurs valeurs et leur structure restent exactement les mêmes.
- Les fonctionnalités JSON5 sont-elles prises en charge (commentaires, virgules finales) ?
- Non. Le formateur suit strictement la RFC 8259. Les fonctionnalités JSON5 provoquent des erreurs d’analyse. Pour travailler avec JSON5, convertissez-le d'abord en JSON standard à l'aide d'un analyseur JSON5.
- Mon JSON est-il téléchargé sur un serveur ?
- Non. L'analyse et le formatage s'effectuent entièrement dans votre navigateur à l'aide des fonctions JSON intégrées.
- Les grands nombres perdront-ils en précision ?
- JavaScript représente les nombres sous forme de flottants 64 bits, donc les entiers supérieurs à 2 ^ 53 (environ 9 quadrillions) perdent en précision. Pour les ID ou autres grandes valeurs entières, stockez-les sous forme de chaînes dans JSON.
- Puis-je trier les clés par ordre alphabétique ?
- JSON.stringify ne trie pas les clés. Utilisez une étape de tri distincte (ou un formateur avec prise en charge du tri) pour classer les clés par ordre alphabétique avant de les chaîner.