La compressione JSON (JSON Minification) è il processo di rimozione di tutti i caratteri di spazio non necessari (spazi, righe \n, tabulazioni \t, ritorni a capo \r) e commenti (non standard ma comuni) dal testo JSON, convertendo JSON formattato con indentazione multilivello in un formato compatto a riga singola. La compressione JSON non modifica alcun contenuto di dati: nomi di chiavi, valori di chiavi, tipi di dati (stringa/numero/booleano/null/array/oggetto) e struttura annidata rimangono completamente intatti; vengono rimossi solo gli spazi di formattazione per la lettura umana.
Il valore centrale della compressione JSON è la riduzione del volume di dati. Gli spazi di indentazione e le righe nel JSON formattato, sebbene siano utili per gli sviluppatori, sono byte ridondanti durante la trasmissione e l'archiviazione in rete. Ad esempio, una tipica risposta API può essere di 2 KB formattata e solo 1,2-1,5 KB compressa, una riduzione delle dimensioni del 25%-40%. In scenari API ad alta concorrenza, ambienti mobili con rete debole e distribuzione massiva di file di configurazione, la compressione JSON può ridurre significativamente il consumo di larghezza di banda, migliorare la velocità di trasmissione e ridurre il carico del server. In produzione viene generalmente utilizzata insieme alla compressione HTTP come Gzip/Brotli, ma JSON Minify come compressione a livello di contenuto rimane insostituibile.
L'implementazione della compressione JSON è molto semplice: usa JSON.parse() per analizzare il testo in un oggetto JavaScript, quindi usa JSON.stringify(obj) senza parametro di indentazione per serializzare l'output: questa è precisamente l'implementazione centrale di questo strumento. Questo metodo parse + stringify garantisce naturalmente che il JSON di output sia valido al 100% e può anche rimuovere automaticamente commenti illegali e virgole finali (insieme alla riparazione degli errori). Importante notare: la compressione JSON e la compressione Gzip sono ottimizzazioni di livelli diversi: JSON Minify rimuove gli spazi ridondanti a livello di contenuto, Gzip è un algoritmo di compressione generale a livello di trasmissione, ed entrambi possono essere utilizzati in combinazione.