Kompresja JSON (JSON Minification) to proces usuwania wszystkich niepotrzebnych znaków białych (spacje, nowe linie\n, tabulatory\t, powroty karetki\r) i komentarzy (niestandardowych, ale powszechnych) z tekstu JSON, przekształcający sformatowany JSON z wielopoziomowymi wcięciami w kompaktowy format jednolinijkowy. Kompresja JSON nie zmienia żadnej treści danych — nazwy kluczy, wartości, typy danych (ciąg/liczba/boolean/null/tablica/obiekt) i zagnieżdżona struktura pozostają całkowicie niezmienione; usuwa tylko formatujące białe znaki przeznaczone do czytelności dla ludzi.
Główna wartość kompresji JSON polega na zmniejszaniu rozmiaru danych. Spacje wcięć i nowe linie w sformatowanym JSON, choć przyjazne dla programistów, są nadmiarowymi bajtami podczas transmisji sieciowej i przechowywania. Na przykład typowa odpowiedź API może mieć 2 KB po sformatowaniu i tylko 1,2-1,5 KB po kompresji, co daje zmniejszenie rozmiaru o 25%-40%. W scenariuszach API o wysokiej współbieżności, słabych sieciach mobilnych i dystrybucji plików konfiguracyjnych na dużą skalę, kompresja JSON znacznie zmniejsza zużycie pasma, poprawia szybkość transmisji i zmniejsza obciążenie serwera. W środowiskach produkcyjnych jest zwykle używana wraz z kompresją HTTP, taką jak Gzip/Brotli, ale JSON Minify jako kompresja warstwy treści pozostaje niezastąpiona.
Implementacja kompresji JSON jest bardzo prosta: użyj JSON.parse() do parsowania tekstu na obiekt JavaScript, a następnie użyj JSON.stringify(obj) bez parametrów wcięć do serializacji wyjściowej — to jest dokładnie podstawowa implementacja tego narzędzia. To podejście parse + stringify w naturalny sposób gwarantuje, że wyjściowy JSON jest w 100% prawidłowy, a także może automatycznie usuwać nielegalne komentarze i przecinki końcowe (z naprawą błędów). Uwaga: kompresja JSON i kompresja Gzip to różne warstwy optymalizacji — JSON Minify usuwa nadmiarowe białe znaki na warstwie treści, Gzip to ogólny algorytm kompresji na warstwie transportowej; te dwie można używać w połączeniu.