Jak używać
- Wklej swój plik JSON do pola wprowadzania po lewej stronie (lub kliknij „Załaduj przykład”, aby to wypróbować).
- Wybierz wcięcie 2-spacowe lub 4-spacowe.
- Kliknij „Formatuj”, aby poprawić wygląd, lub „Zminimalizuj”, aby skompresować tekst do jednego wiersza.
- Jeśli plik JSON jest nieprawidłowy, zapoznaj się z komunikatem o błędzie wyświetlonym poniżej pól, aby zidentyfikować problem.
- Kliknij „Kopiuj”, aby skopiować wynik do schowka.
Przykład
Wejście
{"name":"CodeKitHub","tools":["json","base64"],"free":true}Wynik
{
"name": "CodeKitHub",
"tools": [
"json",
"base64"
],
"free": true
}Te same dane, sformatowane z wcięciem o szerokości dwóch spacji. Minify działa odwrotnie: usuwa wszystkie spacje.
Czym jest to narzędzie?
Formater JSON przetwarza surowy, zminifikowany lub nieuporządkowany tekst JSON, nadając mu spójne wcięcia i podziały wierszy, dzięki czemu staje się on łatwiejszy do odczytania. JSON (JavaScript Object Notation) to najpopularniejszy format danych stosowany w interfejsach API, plikach konfiguracyjnych i systemach logowania, jednak serwery zazwyczaj wysyłają go w postaci jednego długiego, nieczytelnego wiersza, aby oszczędzać przepustowość.
Narzędzie to pełni również funkcję walidatora JSON: analizuje wprowadzone dane zgodnie z tymi samymi rygorystycznymi zasadami, co przeglądarki, więc jeśli w pliku JSON brakuje przecinka, klucz nie jest ujęty w cudzysłowy lub na końcu znajduje się zbędny przecinek, wyświetli się dokładny komunikat o błędzie zamiast cichego niepowodzenia.
JSON jest formalnie zdefiniowany przez dwa zgodne ze sobą standardy, RFC 8259 i ECMA-404 — a specyfikacja jest celowo bardziej rygorystyczna niż sam JavaScript, dlatego fragment działający bez zarzutu jako kod JS może mimo to nie przejść tutaj ścisłej walidacji JSON.
Praktyczne wskazówki
- Debugujesz API? Najpierw wklej surową odpowiedź, a dopiero potem ją sformatuj — narzędzie do walidacji wskazuje dokładny wiersz i kolumnę każdego błędu składniowego, co jest o wiele lepszym rozwiązaniem niż mrużenie oczu nad jednoliniowym fragmentem kodu.
- W przypadku czytania na ekranie należy stosować wcięcie o szerokości 2 spacji oraz zminimalizować rozmiar pliku przed wklejeniem JSON-a do adresu URL, zmiennej środowiskowej lub wiadomości na czacie — w takich przypadkach spacje zajmują tylko bajty.
- Komentarze w stylu JSON5 oraz przecinki na końcu wyrażenia to dwie najczęstsze przyczyny, dla których ręcznie wpisana konfiguracja „wygląda poprawnie”, ale nie przechodzi walidacji: ścisły format JSON nie dopuszcza żadnej z tych rzeczy.
- W przypadku bardzo dużych plików (logów, zrzutów baz danych) formatuj tylko ten fragment, który Cię interesuje — dzięki temu edytor będzie działał płynnie, a strukturę pliku łatwiej będzie śledzić.
Jak to się wpisuje w rzeczywiste procesy robocze
Najczęstszy scenariusz, z jakim mamy do czynienia: interfejs API zwraca dane JSON zakodowane w Base64 lub zminimalizowane w treści tokenu lub webhooka. Najpierw należy zdekodować Base64, następnie sformatować JSON, a na końcu porównać dwie odpowiedzi, jeśli coś uległo zmianie między środowiskami. Każdy z tych kroków ma tutaj dedykowane narzędzie, a dane nigdy nie opuszczają przeglądarki na żadnym z etapów.
Programiści frontendu stosują minifikację równie często, co formatowanie: wysyłasz duży statyczny plik JSON? Jego minifikacja pozwala zazwyczaj zaoszczędzić 20–30% miejsca, zanim jeszcze rozpocznie się kompresja gzip.
Typowe zastosowania
- Odczytanie zminimalizowanej odpowiedzi API zwróconej w postaci jednego nieczytelnego wiersza w celu zrozumienia jej struktury podczas debugowania.
- Sprawdzanie poprawności pliku konfiguracyjnego (takiego jak `package.json` lub plik ustawień oparty na formacie JSON), który z nieznanych przyczyn nie jest poprawnie odczytywany przez aplikację.
- Udostępnianie czytelnego, sformatowanego fragmentu kodu JSON w zgłoszeniu błędu, podczas przeglądu kodu lub w dokumentacji.
- Zmniejszenie rozmiaru danych JSON do minimalnej postaci przed umieszczeniem ich w parametrze adresu URL lub zapisaniem w kolumnie bazy danych o ograniczonej pojemności.
JSON kontra inne formaty konfiguracji
JSON to nie jedyny format danych strukturalnych, a wiedza, kiedy go stosować, oszczędza niepotrzebnej frustracji podczas pracy programistycznej.
- JSON kontra YAML: YAML dopuszcza komentarze i bardziej czytelną dla człowieka składnię (często spotykaną w GitHub Actions czy Docker Compose), ale jest wrażliwy na wcięcia spacjami; JSON jest bardziej rozwlekły, ale jednoznaczny i natywny dla JavaScriptu.
- JSON kontra XML: XML obsługuje atrybuty i przestrzenie nazw, przydatne w starszych dokumentach lub SOAP, ale jest znacznie bardziej rozwlekły; JSON pozostaje standardem dla nowoczesnych API REST.
- JSON kontra JSON5/JSONC: te formaty rozszerzają JSON o komentarze i przecinki na końcu z myślą o wygodniejszej edycji ręcznej (VS Code używa ich we własnych plikach ustawień), ale nie są poprawne dla JSON.parse() ani większości API — dlatego ten walidator celowo je odrzuca.
- Jeśli projekt wymaga zarówno tsconfig.json (JSONC), jak i package.json (czysty JSON), pamiętaj, że tylko ten drugi przejdzie tu rygorystyczną walidację.
Dlaczego warto go używać?
Endpoint integracji z BLIK lub mObywatel zwrócił błąd 400 jako jeden nieczytelny wiersz — wklej go tutaj, żeby od razu zobaczyć, które pole zawiodło, zamiast przewijać ścianę tekstu.
Build na Vercel lub Netlify pada z komunikatem "Unexpected token in JSON at position 214" i żadną inną wskazówką — wklej plik, a błąd pokaże dokładny wiersz i kolumnę.
Musisz osadzić obiekt konfiguracyjny w znaczniku script albo wysłać go przez API z ograniczonym limitem transferu — najpierw zminifikuj, żeby oszczędzić każdy zbędny bajt.
JSON, który akurat debugujesz, zawiera dane klientów albo klucze API z wewnętrznego projektu — wszystko działa lokalnie, więc nic nie trafia na zewnętrzny serwer tylko po to, żeby zostać odczytane.
Sprawdzasz pull request kolegi z surowym, zminifikowanym fixture'em JSON — sformatuj go najpierw tutaj, żeby diff na GitHubie w ogóle miał sens.
Żadnej bramki rejestracyjnej między Tobą a narzędziem — otwórz je na telefonie w trakcie nocnego incydentu produkcyjnego, działa identycznie.
Najczęściej zadawane pytania
Czy moje dane JSON są przesyłane na serwer?
Nie. To narzędzie działa wyłącznie w przeglądarce przy użyciu JavaScript. Dane w formacie JSON nigdy nie opuszczają Twojego urządzenia, dzięki czemu można z niego bezpiecznie korzystać w przypadku danych wrażliwych lub wewnętrznych.
Dlaczego mój plik JSON jest nieprawidłowy?
Najczęstsze przyczyny to: brakujące lub zbędne przecinki, klucze bez cudzysłowów, pojedyncze cudzysłowy zamiast podwójnych, przecinki na końcu listy po ostatnim elemencie oraz komentarze (JSON nie dopuszcza komentarzy). Komunikat o błędzie wyświetlany pod polem wprowadzania danych informuje, co wykrył parser.
Jaka jest różnica między opcjami „Formatuj” a „Minifikuj”?
Funkcja „Formatuj” dodaje wcięcia i znaki końca linii, aby plik JSON był czytelny dla człowieka. Funkcja „Minifikuj” usuwa wszystkie zbędne spacje, aby plik JSON był jak najmniejszy — przydaje się to przed jego przesłaniem lub osadzeniem.
Czy obowiązuje ograniczenie rozmiaru?
Narzędzie nie nakłada żadnego sztywnego ograniczenia. Przetwarzanie bardzo dużych plików (rzędu dziesiątek megabajtów) może przebiegać wolno w zależności od posiadanego urządzenia, ponieważ całe przetwarzanie odbywa się lokalnie w przeglądarce.
Czy to rozwiązanie może automatycznie naprawić uszkodzony plik JSON?
Nie — narzędzie wskazuje dokładnie, gdzie w pliku JSON występuje błąd, dzięki czemu można go naprawić, ale nie zgaduje ani nie zmienia danych użytkownika. Jest to zamierzone działanie: ciche „naprawianie” danych może ukrywać prawdziwe błędy.
Czy obsługuje JSON5 lub JSONC (komentarze, przecinki na końcu, klucze bez cudzysłowów)?
Nie, i to celowo — narzędzie waliduje wg rygorystycznego standardu RFC 8259, którego faktycznie wymagają Twoje API i JSON.parse(). Jeśli chcesz sformatować plik JSONC, np. tsconfig.json, usuń najpierw komentarze, bo parser zgłosi je jako błędy.
Czym różni się to od JSON.stringify w konsoli przeglądarki?
JSON.stringify(JSON.parse(x), null, 2) robi to samo formatowanie, ale wymaga otwartej konsoli i przy błędnym wejściu zwraca mało pomocny ogólny błąd zamiast wskazać dokładny wiersz i kolumnę tak jak to narzędzie.
Czy działa z mocno zagnieżdżonym JSON-em, np. odpowiedziami GraphQL?
Tak — nie ma sztucznego limitu głębokości zagnieżdżenia, jedynie praktyczny limit pamięci przeglądarki i tego, ile chcesz przewijać. Głęboko zagnieżdżone struktury to właśnie miejsce, gdzie formatowanie pomaga najbardziej — w jednym wierszu stają się nieczytelne już po 3-4 poziomach.
Czy jest jakieś ograniczenie kompatybilności z przeglądarkami?
Nie, narzędzie korzysta wyłącznie z JSON.parse() oraz standardowego API canvas/DOM obsługiwanego przez każdą nowoczesną przeglądarkę (Chrome, Firefox, Safari, Edge) z ostatnich lat, w tym wersje mobilne na iOS i Androidzie.