§

Wklej JSON

§

Zminifikowany wynik

text
§

Zaoszczędzone %

  • Pierwotny rozmiar
  • Rozmiar zminifikowany
  • Zaoszczędzone
  • Zaoszczędzone %

Minifikacja JSON-a to codzienność polskich zespołów inżynierskich: bramki API Allegro, payload-y mobilnej bankowości PKO BP, mBanku i ING Banku Śląskiego oraz odpowiedzi systemów płatniczych Blik przesyłane są przez sieci 5G Orange i Play Polska, gdzie każdy bajt liczy się przy taryfach IoT. KSeF, krajowy system e-fakturowania, wymienia podpisane JSON-y, które po stronie księgowej wracają wolnym łączem do CRM. Ministerstwo Cyfryzacji rekomenduje minifikację dla otwartych API, a NBP udostępnia kursy walut i dane finansowe w JSON do pobierania przez aplikacje mobilne. Minifikator działa lokalnie, więc dane osobowe i NIP-y pozostają w przeglądarce.

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:

  1. Twoje dane wejściowe są odczytywane z pola tekstowego dosłownie — każdy bajt, który wkleiłeś, pozostaje lokalnie w pamięci.
  2. Przeglądarka parsuje je za pomocą JSON.parse. Jeśli wejście nie jest poprawnym JSON-em, parser zgłasza SyntaxError, który jest przechwytywany i wyświetlany dosłownie — twój tekst nigdy nie opuszcza strony.
  3. 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.
  4. 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.
  5. 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.stringify obsł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.