Minifiez le JSON sous sa forme valide la plus compacte ou affichez-le avec une indentation de 2 espaces, 4 espaces ou tabulations. Tri des clés optionnel, compteur d'octets économisés en direct, tout s'exécute dans votre navigateur.
Supprimez chaque octet qui ne change pas les données. Collez du JSON pour supprimer tout l'espacement facultatif, ou basculez sur l'embellissage pour le réafficher avec l'indentation de votre choix. Le tri des clés rend deux documents comparables, et le compteur d'octets montre ce que la minification vous a réellement apporté.
–
Ce que la minification fait et ne fait pas
Seul l'espacement est supprimé
La grammaire de JSON autorise les espaces, tabulations et sauts de ligne entre deux jetons quelconques, et aucun d'eux n'a de signification. Minifier consiste à supprimer chacun de ces caractères facultatifs : {"a": 1, "b": 2} devient {"a":1,"b":2}. La valeur analysée est identique octet pour octet en mémoire, c'est pourquoi cette opération est toujours sûre à appliquer à une charge utile avant de l'envoyer.
Ce que la minification ne fait pas, en revanche, c'est compresser les données. Les noms de clés, le contenu des chaînes et la précision numérique sont tous préservés exactement. Si votre document est volumineux parce qu'il répète les mêmes vingt noms de champs sur dix mille enregistrements, la minification rognera l'indentation mais laissera la répétition intacte — c'est le rôle de gzip ou d'un autre schéma.
Quand l'économie compte vraiment
Sur une réponse d'API typique prétty-printée, l'espacement représente entre 10 % et 30 % de la taille brute. Cela semble intéressant jusqu'à ce que vous vous rappeliez que presque toute réponse HTTP est déjà compressée en gzip ou brotli en transit, et que les algorithmes de compression gèrent très bien les suites d'espaces. Après gzip, la différence entre un JSON minifié et formaté est souvent inférieure à 2 %.
La minification garde néanmoins sa place dans trois situations : les données intégrées directement dans une page HTML ou un bundle JavaScript, où elles ne sont pas compressées séparément ; le stockage dans une colonne de base de données ou un cache, où c'est la chaîne brute qui occupe l'espace ; et partout où vous comptez les caractères par rapport à une limite stricte, comme un paramètre d'URL ou un champ de message à capacité fixe.
Trier les clés pour comparer
Les objets JSON sont officiellement non ordonnés, mais chaque sérialiseur écrit les clés dans un ordre concret, et deux systèmes choisissent rarement le même. Cela rend illisible un simple diff texte de deux documents logiquement identiques.
Trier les clés de façon récursive avant la sortie donne aux deux documents la même forme canonique, si bien qu'un diff ligne par ligne finit par ne montrer que les vraies modifications. C'est le même principe que les builds reproductibles et le cache adressé par contenu. Gardez toutefois à l'esprit que le tri modifie la sortie en octets, donc un document trié n'est plus identique à ce que le système source a produit — utilisez-le pour comparaison, pas pour re-signer des signatures.
FAQ
Mes données sont-elles téléversées quelque part ?
Non. L'analyse et la re-sérialisation se font entièrement dans votre navigateur avec les fonctions JSON natives, le document ne quitte donc jamais la page.
La minification modifie-t-elle mes données ?
Non. Seul l'espacement insignifiant entre les jetons est supprimé. Chaque clé, chaîne, nombre et booléen survivent inchangés, et la valeur analysée est identique.
Pourquoi l'économie est-elle plus faible que prévu ?
Le compteur mesure les octets UTF-8 bruts. Si votre JSON était déjà compact, ou si la majeure partie de sa taille provient du contenu des chaînes plutôt que de l'indentation, il y a peu d'espacement à supprimer.
Dois-je minifier si mon serveur utilise déjà gzip ?
Généralement non pour les charges utiles réseau — gzip compresse très efficacement les suites d'espaces, l'gain supplémentaire est donc souvent inférieur à 2 %. Cela aide toutefois pour le JSON en ligne ou stocké.
À quoi sert le tri des clés ?
Il réordonne les clés de chaque objet par ordre alphabétique, de façon récursive. Deux documents logiquement identiques produisent alors un texte identique, ce qui rend un simple diff ligne utilisable.
Pourquoi une erreur d'analyse sur un JSON qui semble valide ?
La grammaire stricte rejette les virgules finales, les chaînes entre apostrophes, les commentaires et les clés non quotées. Ce sont des particularités des littéraux objets JavaScript, pas du JSON.