Ce que fait cet outil
Il réindente. Les caractères qui composent chaque valeur restent exactement ceux que vous avez tapés.
{"id":12345678901234567890,"ratio":1.0,"enorme":1e400}
{
"id": 12345678901234567890,
"ratio": 1.0,
"enorme": 1e400
}
La méthode évidente change vos nombres
Passez la même entrée dans l’implémentation évidente — JSON.parse puis JSON.stringify — et les trois valeurs changent :
| écrit | après un aller-retour analyse/impression |
|---|---|
12345678901234567890 | 12345678901234567000 |
1.0 | 1 |
1e400 | null |
Un nombre JavaScript est un flottant double précision. Il porte une quinzaine de chiffres, il ne se souvient pas que vous aviez écrit une virgule décimale, et au-delà d’environ 1,8 × 10³⁰⁸ il devient l’infini — que JSON ne sait pas représenter, et qui s’imprime donc null.
Rien de tout cela n’est une curiosité d’arrondi. 12345678901234567890, c’est la forme d’un flocon Twitter, d’un bigint PostgreSQL ou d’une référence de paiement, et un formateur qui le modifie vous rend un fichier qui ne désigne plus la même ligne.
Cet outil lit chaque nombre comme le texte qu’il est, et réécrit ce texte.
Les clés en double sont refusées, pas arbitrées
{ "port": 8080, "host": "example.com", "port": 3000 }
La RFC 8259 dit que les noms d’un objet devraient être uniques — un « devrait », pas un « doit » — et ne dit rien de ce qu’il faut faire sinon. En pratique les analyseurs divergent : la plupart gardent le dernier, certains le premier, d’autres refusent le document.
Choisir à votre place produirait un fichier qui ne dit plus la même chose, sans rien pour le signaler. L’outil s’arrête et donne la position de la seconde clé.
Du JSON strict, et rien d’autre
Ni commentaires, ni virgule finale, ni chaînes entre apostrophes. Cela s’appelle JSON5 et JSONC : des langages différents qui habitent des fichiers nommés .json.
Les accepter reviendrait à produire une sortie que la moitié des analyseurs du monde refuse, c’est-à-dire le contraire de ce à quoi sert un formateur. Le message d’erreur nomme la position du caractère qui a rompu.
Les deux réglages
Indentation — deux espaces par défaut. Zéro produit la forme minifiée.
Trier les clés — alphabétiquement, récursivement, les tableaux gardant leur ordre. Pratique avant de comparer deux fichiers ; laissez-le désactivé quand l’ordre des clés a un sens.
Confidentiel par conception
Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.