JSON Compress
Darmowe narzędzie online do kompresji JSON obsługujące jednolinijkową kompaktową minifikację JSON, JSON Escape/Unescape, wbudowaną inteligentną naprawę składni, która automatycznie obsługuje przecinki końcowe i inne typowe błędy, wyświetlanie współczynnika kompresji w czasie rzeczywistym, edytor CodeMirror ze skrótami klawiszowymi, czysta obróbka po stronie frontendowej.
Powiązane Rekomendacje
Co to jest kompresja JSON (JSON Minify)?
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.
Przypadki użycia
- Kompresja ciał żądań/odpowiedzi JSON w rozwoju API w celu zmniejszenia bajtów transmisji HTTP i poprawy szybkości odpowiedzi API (szczególnie w słabych sieciach mobilnych)
- Minimalizacja frontendowych plików konfiguracyjnych JSON, pakietów językowych i18n i danych Mock przed wdrożeniem w celu zmniejszenia rozmiaru zasobów statycznych
- Eskejpowanie obiektów JSON na literały ciągów do osadzania w kodzie testów jednostkowych, poleceniach Postman/curl
- Jednoklikowe Unescape eskejpowanego JSON skopiowanego z logów (np. \"key\":\"value\") na czytelny JSON
- Wsadowa naprawa plików JSON z błędami składni, takimi jak przecinki końcowe i pojedyncze cudzysłowy, konwertowanie na prawidłowy JSON jednym kliknięciem
- Kompresja sformatowanego JSON do jednej linii i wklejanie do argumentów wiersza poleceń lub narzędzi czatu w celu udostępniania
Jak Używać
- Wklej zawartość JSON do lewego edytora, kliknij przycisk przesyłania, aby wybrać lokalny plik .json/.txt, lub kliknij przycisk «Przykład», aby załadować przykład
- Tryb kompresji działa automatycznie domyślnie (opóźnienie 400 ms) lub kliknij ręcznie przycisk «Kompresuj» lub naciśnij Shift+Cmd/Ctrl+C
- Aby eskejpować do ciągów kodu, naciśnij Shift+Cmd/Ctrl+E lub przełącz się na tryb Escape; aby przywrócić eskejpowane ciągi, naciśnij Shift+Cmd/Ctrl+U
- Jeśli JSON ma błędy składni, na dole pojawi się czerwony komunikat o błędzie; gdy istnieją naprawialne błędy, pojawi się przycisk «Spróbuj naprawić» — kliknij, aby automatycznie poprawić
- Dolny pasek stanu pokazuje w czasie rzeczywistym liczbę bajtów przed/po kompresji i procent współczynnika kompresji; po potwierdzeniu wyników kliknij «Kopiuj» lub «Pobierz»
- Separator między lewym a prawym panelem jest przeciągalny w celu dostosowania szerokości; możesz również używać skrótów klawiszowych do szybkiego wykonania wszystkich operacji
Funkcje
- Trzy w jednym: kompaktowa kompresja JSON + Escape + Unescape, obejmuje scenariusze zmniejszania rozmiaru, osadzania ciągów kodu i przywracania eskejpowania
- Inteligentna naprawa składni: wbudowany silnik tryFixJSON automatycznie wykrywa i naprawia typowe błędy JSON, takie jak przecinki końcowe, pojedyncze cudzysłowy, komentarze, niezamknięte cudzysłowy
- Edytor CodeMirror: dwukolumnowy układ z wejściem po lewej i wynikami po prawej, obsługuje podświetlanie składni JSON, przeciągalny separator, regulację rozmiaru czcionki
- Statystyki kompresji w czasie rzeczywistym: pasek stanu natychmiast pokazuje oryginalny rozmiar (Bytes/KB/MB), rozmiar po kompresji i dokładny procent współczynnika kompresji
- Skróty klawiszowe: Shift+Cmd/Ctrl+C kompresja, E eskejpowanie, U odeskejpowanie, O przesyłanie, D pobieranie, K czyszczenie — efektywne działanie bez myszy
- Tryb automatycznego wykonywania: automatyczna kompresja/eskejpowanie z opóźnieniem 400 ms po wklejeniu lub edycji, WYSIWYG
- Przesyłanie i pobieranie plików: przeciągnij lub kliknij, aby przesłać pliki .json/.txt, jednoklikowe pobranie output.json po przetworzeniu
- Historia lokalna: localStorage automatycznie zapisuje ostatnią wprowadzoną zawartość, bez utraty danych po odświeżeniu strony
- Dane przykładowe: jednoklikowe załadowanie przykładowego JSON do szybkiego wypróbowania, komunikaty o błędach z przyciskiem naprawy
- Bezpieczeństwo frontendowe: wszystkie operacje działają lokalnie w przeglądarce, dane nie są wysyłane na serwer, działa w trybie offline
Często Zadawane Pytania
Jaka jest różnica między kompresją JSON a formatowaniem JSON?
Formatowanie JSON (Beautify) dodaje wcięcia, nowe linie i spacje między parami klucz-wartość, aby uczynić je bardziej czytelnymi dla ludzi, odpowiednie do rozwoju i debugowania; kompresja JSON (Minify) usuwa wszystkie niepotrzebne znaki białe (spacje, nowe linie, tabulatory, wcięcia), przekształcając wielolinijkowy JSON w kompaktowy format jednolinijkowy w celu zmniejszenia rozmiaru i poprawy wydajności transmisji, odpowiedni do transmisji API w produkcji, minimalizacji plików konfiguracyjnych i osadzania w ciągach kodu. Te dwie operacje się uzupełniają — przeglądaj sformatowaną wersję podczas rozwoju, używaj skompresowanej wersji w produkcji.
Co to jest JSON Escape? Kiedy muszę go używać?
JSON Escape to dodawanie ukośników odwrotnych do znaków specjalnych w ciągach JSON (głównie konwertowanie podwójnych cudzysłowów " na \", ukośników odwrotnych \ na \\, nowych linii na \n itp.), przekształcając wielolinijkowe obiekty JSON w jednolinijkowe literały ciągów, które można bezpośrednio osadzać w kodzie źródłowym JavaScript, Java, Python itp. Typowe scenariusze: osadzanie odpowiedzi JSON jako ciągów w kodzie testowym podczas pisania testów jednostkowych; przekazywanie ciągów JSON w poleceniach Postman lub curl; używanie JSON jako wartości ciągów w plikach konfiguracyjnych. Unescape to operacja odwrotna, która przywraca eskejpowane ciągi z powrotem do standardowego JSON.
Jeśli wejściowy JSON ma błędy składni (np. przecinki końcowe), czy można go pomyślnie skompresować?
Tak. To narzędzie ma wbudowany inteligentny silnik naprawy składni (tryFixJSON), który przed kompresją automatycznie wykrywa i próbuje naprawić typowe błędy JSON: 1) przecinki końcowe (trailing comma), np. {"a":1,}; 2) pojedyncze cudzysłowy zamiast podwójnych, np. {'a':1}; 3) niezamknięte ciągi; 4) komentarze JavaScript (// i /* */); 5) dodatkowe przecinki na końcu itp. Po naprawie wykonywana jest kompresja lub eskejpowanie, aby zapewnić 100% prawidłowy JSON na wyjściu. Jeśli wykryta zostanie naprawialna błąd, na panelu pojawi się przycisk «Spróbuj naprawić»; kliknij go, aby automatycznie poprawić.
Czy kompresja JSON powoduje utratę danych? Jaki jest typowy współczynnik kompresji?
Brak utraty danych. Kompresja JSON usuwa tylko formatujące znaki białe (spacje, nowe linie, tabulatory) bez zmiany żadnych nazw kluczy, wartości, typów danych ani struktury. Po JSON.parse, a następnie JSON.stringify, dane są całkowicie identyczne z oryginałem. Współczynnik kompresji zależy od stopnia sformatowania oryginalnego JSON: jeśli oryginał był sformatowanym JSON z wcięciami 2-spacjowymi, współczynnik kompresji wynosi zazwyczaj 20%-40% (usunięcie wcięć i nowych linii); jeśli występują duże ilości kolejnych spacji lub komentarzy (po naprawie), współczynnik kompresji może przekroczyć 50%. Pasek stanu wyświetla oryginalne bajty, skompresowane bajty i dokładny współczynnik kompresji w czasie rzeczywistym.
Czy wrażliwe konfiguracje JSON lub dane API wyciekną podczas kompresji?
Nie. To narzędzie wykorzystuje architekturę czystej obróbki po stronie frontendowej; wszystkie operacje parsowania, kompresji, eskejpowania i naprawy JSON są wykonywane całkowicie w silniku JavaScript Twojej lokalnej przeglądarki. Dane nie są wysyłane na zewnętrzne serwery przez żadne żądania sieciowe, a narzędzie działa normalnie w trybie offline. Twoje klucze API, konfiguracje baz danych, dane biznesowe i inne wrażliwe informacje pozostają zawsze lokalnie.
Jakie skróty klawiszowe są obsługiwane?
Dla wydajności to narzędzie zapewnia pełną obsługę skrótów klawiszowych (używaj ⌘+Shift na macOS, Ctrl+Shift na Windows): Shift+⌘/Ctrl+C do jednoklikowej kompresji; Shift+⌘/Ctrl+E do Escape; Shift+⌘/Ctrl+U do Unescape; Shift+⌘/Ctrl+O do przesyłania pliku; Shift+⌘/Ctrl+D do pobierania wyniku; Shift+⌘/Ctrl+K do czyszczenia. Podczas pisania narzędzie automatycznie wykonuje bieżący tryb z opóźnieniem 400 ms (debounce), bez potrzeby wielokrotnego klikania przycisków.
Słownik
- JSON
- JavaScript Object Notation, lekki format wymiany danych wykorzystujący pary klucz-wartość i struktury tablic, czytelny dla ludzi i parsowalny przez maszyny, standardowy format danych dla REST API.
- Minify / Kompresja
- Proces usuwania wszystkich niepotrzebnych znaków (spacje, nowe linie, komentarze) z kodu/danych w celu zmniejszenia rozmiaru, powszechnie stosowany do zasobów frontendowych JS/CSS/JSON.
- Beautify / Formatowanie
- Odwrotność Minify, dodawanie wcięć, nowych linii i spacji, aby struktura JSON była przejrzysta i czytelna, nazywana również Prettify lub Pretty Print.
- Escape / Eskejpowanie
- Dodawanie ukośników odwrotnych przed znakami specjalnymi (np. " staje się \", nowa linia staje się \n), przekształcanie wielolinijkowego JSON na jednolinijkowe literały ciągów do osadzania w kodzie.
- Unescape / Odeskejpowanie
- Odwrotność Escape, przywracanie sekwencji eskejpowych takich jak \", \n, \\ do oryginalnych znaków, odzyskiwanie standardowego formatu JSON.
- Trailing Comma
- Dodatkowy przecinek po ostatnim elemencie w obiekcie lub tablicy; dozwolony w JavaScript, ale nie w standardzie JSON, najczęstszy błąd składni JSON.
- Gzip / Brotli
- Ogólne algorytmy kompresji warstwy transportowej HTTP, komplementarne do JSON Minify; Gzip po Minify osiąga najlepszą kompresję.
- Payload
- Właściwe ciało danych przesyłane w żądaniu lub odpowiedzi API (zwykle w formacie JSON); kompresja Payload bezpośrednio zmniejsza zużycie pasma.
- CodeMirror
- Komponent edytora kodu po stronie przeglądarki; to narzędzie używa go do podświetlania składni JSON, numerów linii, dopasowywania nawiasów i innych profesjonalnych doświadczeń edycyjnych.
Porównanie kompresji JSON z powszechnymi metodami kompresji
| Metoda | Warstwa kompresji | Bezstratna | Czytelność | Scenariusz użycia |
|---|---|---|---|---|
JSON Minify | Warstwa treści (usuwanie białych znaków) | Tak | Nieczytelna (jedna linia) | Transmisja API w produkcji, minimalizacja konfiguracji |
JSON Beautify | Warstwa treści (dodawanie białych znaków) | Tak | Wysoce czytelna | Rozwój, debugowanie, ręczne czytanie |
Gzip | Warstwa transportowa | Tak | Nieczytelna (binarna) | HTTP Content-Encoding odpowiedzi |
Brotli | Warstwa transportowa | Tak | Nieczytelna (binarna) | Kompresja statycznych zasobów HTTPS (o 20% lepsza niż Gzip) |
MessagePack | Warstwa serializacji | Tak | Nieczytelna (binarna) | Wysokowydajna komunikacja wewnętrzna RPC |
Tabela referencyjna znaków specjalnych JSON Escape
| Oryginalny znak | Po eskejpowaniu | Nazwa | Opis |
|---|---|---|---|
" | \" | Podwójny cudzysłów | Najczęstszy znak, który musi być eskejpowany w ciągach JSON |
\ | \\ | Ukośnik odwrotny | Sam znak eskejpujący wymaga eskejpowania |
Newline | \n | Newline | Musi być eskejpowany podczas kompresji wielolinijkowych ciągów do jednej linii |
Tab | \t | Tab | Eskejpowanie tabulatora wcięcia |
Carriage Return | \r | Carriage Return | CR w nowej linii Windows CRLF |
/ | \/ | Ukośnik | Dozwolony, ale nie wymagany przez standard JSON (opcjonalnie) |
Authoritative References
- JSON Compress
- Konwerter CSV na JSON
- JSON na CSV
- JSON Diff
- JSON Escape / Unescape
- Spłaszczanie JSON
- JSON Formatter
- Generator JSON
- Zapytanie JSONPath
- Scal JSON
- Naprawa JSON
- Walidator JSON Schema
- Sortowanie JSON
- JSON Stringify
- JSON do HTML
- JSON do Javy
- JSON na Markdown
- JSON do SQL
- JSON do TOML
- JSON do TypeScript
- XML na JSON
- Konwertuj JSON do XML
- YAML na JSON
- JSON → YAML
- JSON na Go
- JSON na Rust
- JSON to Swift
- JSON na C#
- JSON na C++
- JSON na PHP
- JSON na Python