Minifier et formater du JSON en ligne

Réduisez un JSON à une ligne, ou rendez-le lisible, sans jamais arrondir un nombre ni réordonner une clé. Les erreurs sont indiquées à la ligne près.

Niveau de protection

Réglages détaillés

Traitement 100 % local, rien n’est envoyé

Comment ça marche ?

Le JSON est réduit sans être interprété : les valeurs sont recopiées telles quelles. Un entier de vingt chiffres n’est pas arrondi, 1.10 reste 1.10, l’ordre des clés est conservé. Les commentaires (//, /* */) et les virgules finales du JSONC sont acceptés en entrée et retirés en sortie.

Au niveau « Lisible », le document est indenté avec deux espaces. En cas d’erreur (virgule oubliée, accolade manquante), la ligne et la colonne sont indiquées.

Exemples

Un nombre qui ne bouge pas : 72 octets deviennent 56

Le document { "id": 12345678901234567890, "prix": 1.10, … } devient {"id":12345678901234567890,"prix":1.10,"tags":["a","b"]}. Avec JSON.parse puis JSON.stringify, l’identifiant aurait été arrondi à 12345678901234567000.

Des commentaires retirés

Un fichier de configuration contenant 3 commentaires // et une virgule finale devient un JSON strict que n’importe quel analyseur accepte.

Questions fréquentes

Pourquoi ne pas utiliser JSON.stringify ?
Parce que JSON.parse convertit les nombres en flottants : un grand identifiant ou un nombre à décimales significatives (1.10) est modifié, et les clés en double disparaissent. Cet outil ne touche pas aux valeurs.
Les commentaires sont-ils acceptés ?
En entrée, oui (format JSONC, courant dans les fichiers de configuration) : ils sont retirés pour produire un JSON valide. En sortie, il n’y en a jamais.
Que font les quatre niveaux ?
« Lisible » ne réduit rien (TypeScript est seulement compilé, avec une source map). « Allégé » supprime commentaires, espaces et retours à la ligne. « Optimisé » renomme en plus les variables locales et simplifie la syntaxe. « Protégé » (JavaScript et TypeScript) ajoute l’encodage des chaînes et le masquage des propriétés. Chaque réglage reste modifiable dans « Réglages détaillés ».
Mon code est-il envoyé quelque part ?
Non. Le traitement se fait dans votre navigateur, dans un worker : votre code n’est ni envoyé, ni enregistré, et aucune requête n’est faite pendant la réduction. Seuls les moteurs sont téléchargés : esbuild (JavaScript, TypeScript, CSS) est servi par ce site, et l’interpréteur Python (environ 13 Mo, une seule fois) vient de jsDelivr, vérifié par une empreinte SHA-256 avant d’être utilisé.