Encoders & Utilities

JSON Formatter

Waliduj, formatuj i minifikuj JSON z kolorowaniem składni.

O tym narzędziu

JSON Formatter parsuje dowolny dokument JSON, waliduje go wobec gramatyki RFC 8259 i reformatuje ze spójnymi wcięciami i syntax highlightingiem. Wklej wyjście z odpowiedzi API, pliku konfiguracji lub linii logu — niepoprawny JSON dostaje inline błąd z dokładną linią i kolumną parse failure; poprawny JSON dostaje pretty-print ze zwijalnymi obiektami i tablicami, byś mógł nawigować po dużych strukturach bez wiecznego scrollowania.

Poza pretty-print, narzędzie może minifikować JSON (strip każdy uniknięty bajt dla transportu), sortować klucze alfabetycznie (przydatne do diffowania dwóch configów), escapować całą wartość jako JSON-w-stringu (dla osadzania w innym payloadzie JSON) i unescapować z powrotem. Wszystko działa lokalnie w Twojej przeglądarce — żaden payload nie przechodzi przez sieć, więc jest bezpieczne dla odpowiedzi API zawierających tokeny lub PII.

Kiedy używać tego narzędzia

  • Debugowanie API. Wrzuć odpowiedź curl do formattera, by ścianę kompaktowego JSON-a uczynić czytelną.
  • Diffy plików konfiguracji. Posortuj oba pliki po kluczach, a potem porównaj — losowa kolejność kluczy inaczej generuje hałaśliwe diffy.
  • Walidacja przed wdrożeniem. Literówka w YAML CI często ukrywa się jako zniekształcony JSON wewnątrz stringa; wklej wewnętrzny JSON, by potwierdzić, że się parsuje.
  • Osadzanie JSON w JSON. Auto-escapuj payload, by mógł podróżować jako pole stringowe w innym dokumencie JSON (przydatne dla webhook bodies w templates).

Co łapie nasz walidator

RFC 8259 zabrania końcowych przecinków, komentarzy i niezacytowanych kluczy — popularnych konweniencji JS-owych. Honorujemy spec ściśle, więc JSON, który kopiujesz z naszego formattera, jest poprawny wszędzie. Jeśli musisz sformatować JSON5 lub JSONC (z komentarzami, końcowymi przecinkami), zrób wstępny przebieg "strip extras" — wiele edytorów robi to automatycznie przy zapisie jako .json.

Najczęstsze pytania

Dlaczego mój JSON z końcowymi przecinkami nie parsuje się?

Bo RFC 8259 ich zabrania. {"a": 1,} jest poprawne w JavaScript, ale niepoprawne w JSON. To samo dla pojedynczo cytowanych stringów, niezacytowanych kluczy i komentarzy // — to konweniencje JS, które spec JSON celowo wykluczył dla cross-language portability. Jeśli potrzebujesz rozluźnionego formatu, spójrz na JSON5 lub JSONC; dla strict interop nasz formatter słusznie je odrzuca.

Czy mogę formatować JSON Lines (NDJSON)?

Nie bezpośrednio — NDJSON (jeden obiekt JSON na linię) to własny format i traktujemy całą wklejkę jako pojedynczy dokument. By pretty-print plik NDJSON, podziel go najpierw na linie i sformatuj każdą osobno. Wynik nie będzie już NDJSON (bo pretty-printing dodaje nowe linie), więc to tylko do inspekcji — nigdy nie nadpisuj oryginalnego pliku pretty-printowanym wyjściem.

Czy narzędzie zmienia kolejność moich kluczy?

Tylko jeśli o to poprosisz. Domyślnie formatter zachowuje kolejność wstawiania. Toggle "Sort keys" alfabetyzuje każdy obiekt na każdej głębokości — przydatne do diffowania dwóch configów, ale zmienia layout dokumentu. Dla wyjścia przyjaznego człowiekowi, respektującego logiczne grupowanie, zostaw sortowanie wyłączone; dla porównania maszynowego włącz je.

Jak duże może być wejście?

Testowaliśmy do ~50 MB na nowoczesnym laptopie. Większe i parsowanie przeglądarki zauważalnie zwalnia — przy 100 MB+ wiele przeglądarek wywala timeout zadania JavaScript. Dla bardzo dużych dumpów JSON użyj streamującego parsera w linii poleceń (jq, fx, jless); dla typowego przypadku "odpowiedź API, która okazała się mieć 8 MB" przeglądarka radzi sobie świetnie.