CodeKitHub
Narzędzia JSON

Formater i walidator JSON online

Ostatnia aktualizacja:

Wklej poniżej swój plik JSON, aby natychmiast go sformatować, uporządkować lub zminimalizować. Narzędzie sprawdza poprawność pliku JSON podczas formatowania i wyświetla dokładny komunikat o błędzie, jeśli coś jest nie tak. Wszystko odbywa się lokalnie w przeglądarce — Twoje dane nigdy nie są przesyłane na żaden serwer.

Jak używać

  1. Wklej swój plik JSON do pola wprowadzania po lewej stronie (lub kliknij „Załaduj przykład”, aby to wypróbować).
  2. Wybierz wcięcie 2-spacowe lub 4-spacowe.
  3. Kliknij „Formatuj”, aby poprawić wygląd, lub „Zminimalizuj”, aby skompresować tekst do jednego wiersza.
  4. Jeśli plik JSON jest nieprawidłowy, zapoznaj się z komunikatem o błędzie wyświetlonym poniżej pól, aby zidentyfikować problem.
  5. 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.

Koder / dekoder Base64 · Porównanie tekstów

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.

Powiązane narzędzia