Czym jest minifikacja JSON?
JSON (JavaScript Object Notation) to lekki, tekstowy format wymiany danych zdefiniowany w RFC 8259 i ECMA-404. Minifikacja usuwa każdą spację, tabulator i znak nowej linii znajdujący się poza literałem tekstowym — wartości są zachowane bajt w bajt, znika tylko kosmetyczna biel. Wynik parsuje się dokładnie do tej samej wartości co wejście.
Jak działa minifikacja JSON?
Twoje dane wejściowe są przetwarzane w całości w przeglądarce przy użyciu wbudowanych funkcji JSON.parse i JSON.stringify. Najważniejsze kroki:
- Twoje dane wejściowe są odczytywane z pola tekstowego dosłownie — każdy bajt, który wkleiłeś, pozostaje lokalnie w pamięci.
- Przeglądarka parsuje je za pomocą
JSON.parse. Jeśli wejście nie jest poprawnym JSON-em, parser zgłaszaSyntaxError, który jest przechwytywany i wyświetlany dosłownie — twój tekst nigdy nie opuszcza strony. - Gdy parsowanie się udaje, sparsowana wartość jest ponownie wypisywana za pomocą
JSON.stringify(value)— bez argumentu wcięcia — co daje najkrótszą poprawną postać tej samej wartości. - Długość w bajtach zarówno pierwotnego, jak i zminifikowanego tekstu jest obliczana za pomocą
new TextEncoder().encode(...).byteLength— to ten sam licznik bajtów UTF-8, który zobaczy serwer HTTP na łączu. - Wynik trafia do pola tylko do odczytu, panel metryk pokazuje różnicę bajtów z procentem zaoszczędzonych danych, a przycisk Pobierz pakuje wynik w plik
.min.json, gotowy do wysyłki.
Dlaczego minifikować JSON tym narzędziem?
- Prywatność: każde parsowanie, minifikacja i obliczanie metryk odbywa się w twojej przeglądarce. JSON nigdy nie trafia na nasze serwery — bez wysyłania, telemetrii i konta.
- Realne bajty: pierwotny rozmiar, rozmiar zminifikowany i oszczędności są liczone przez TextEncoder, więc widzisz dokładnie tę różnicę bajtów UTF-8, za którą obciąży cię CDN lub bramka API.
- Brak utraty danych: minifikacja jest czysto kosmetyczna — każda wartość parsuje się do tego samego drzewa JSON, więc jest bezpieczna dla produkcyjnych ładunków, manifestów i osadzonych fikstur.
- Szybko: czyste
JSON.parse+JSON.stringifyobsługują typowe ładunki ze schowka natychmiast, bez ładowania zewnętrznych bibliotek.
Jakie są typowe zastosowania minifikacji JSON?
Usuwanie nieistotnych białych znaków z JSON-a pojawia się w tworzeniu stron, inżynierii danych i systemach wbudowanych:
- Redukcja ładunków API: zmniejsz ciało żądania i odpowiedzi, zanim przejdzie przez taryfikowaną bramkę API, płatne łącze egress albo łącze satelitarne.
- Osadzanie w HTML: upchnij JSON-blob w atrybucie
data-*lub tagu<script type="application/json">bez wycieku białych znaków pretty-printera do wyrenderowanej strony. - Mniejszy localStorage: ograniczaj zużycie limitu localStorage / IndexedDB, zapisując zminifikowany JSON zamiast sformatowanego — szczególnie cenne w przeglądarkach mobilnych ze ścisłymi limitami per origin.
Jak wygląda przykład minifikacji JSON?
Wklejenie ładnie sformatowanego pliku konfiguracyjnego o rozmiarze 1,2 KB (około 1225 bajtów z dwuspacjowym wcięciem) i naciśnięcie Minifikuj zwykle ściska go do mniej niż 0,4 KB — 66% oszczędności — z zachowaniem każdego klucza i wartości. Pobierany plik output.min.json jest bajt w bajt identyczny z tym, co serwer HTTP wysłałby z Content-Type: application/json i bez warstwy formatującej.
Czy to działa w mojej przeglądarce?
Tak. Potok minifikacji to czyste JSON.parse + JSON.stringify uruchamiane wewnątrz karty przeglądarki. Nic nie jest wysyłane, żaden service worker nie pośredniczy w twoich danych, a strona nie wykonuje żadnego żądania sieciowego dla samej minifikacji. Jedyny ruch wychodzący to standardowe zasoby strony (CSS, fonty, analityka) — twój JSON nigdy nie trafia do Ultim8Soft.
Po co minifikować JSON?
Zminifikowany JSON parsuje się do dokładnie tej samej wartości co sformatowany oryginał, ale jest mniejszy na łączu i w pamięci. Mniejsze ładunki to niższe rachunki za egress CDN, szybsze pobieranie na mobilnych, mniejsze obciążenie pamięci wewnątrz service workerów oraz lepsze dopasowanie do kopert o stałym rozmiarze, takich jak payload-y JWT, atrybuty data-* w HTML i limity localStorage. Dla API o dużym natężeniu oszczędność bajtów się sumuje — redukcja o 30% na endpoincie z 1 GB/dzień daje około 9 GB miesięcznie.
Czy minifikacja powoduje utratę danych?
Nie. Minifikacja JSON usuwa wyłącznie białe znaki znajdujące się poza literałami tekstowymi — spacje, tabulatory i znaki nowej linii, które specyfikacja już klasyfikuje jako nieistotne. Każdy klucz, wartość, liczba, sekwencja ucieczki i znak w łańcuchu są zachowywane bajt w bajt. Wynik parsuje się do wartości, która jest deepEqual wobec wejścia. Znika tylko kosmetyczne wcięcie.
Jaka jest różnica między formatterem a minifikatorem?
Towarzyszący Formatter JSON idzie w drugą stronę: rozszerza białe znaki, żeby ludzie mogli czytać zagnieżdżone struktury. Minifikator ściąga te białe znaki z powrotem na potrzeby transportu i przechowywania. Te dwa narzędzia są swoimi odwrotnościami — przepuszczenie dokumentu JSON przez Formatter → Minifikator daje ten sam ciąg bajtów, od którego zaczynałeś minifikator, ponieważ oba pracują na sparsowanej wartości, a nie na kosmetycznym znaczniku.
Ten minifikator JSON używa tego samego parsera, którego używa twój Node.js, Deno lub środowisko przeglądarkowe, i produkuje wynik bajt w bajt zgodny z tym, co wygenerowałby prosty serwer HTTP. Wklej dowolny JSON powyżej, skopiuj wynik lub pobierz go jako .min.json.