Przejdź do treści
HNarzędzia
pl
Kategorie

Formatowanie i walidacja JSON online - beautify, minify

Wklej JSON, a narzędzie od razu go sformatuje lub zminifikuje i sprawdzi poprawność - w razie błędu wskaże dokładną linię i kolumnę oraz wyjaśni po polsku, co poprawić.

  • Za darmo
  • Bez rejestracji
  • Prywatne
  • Działa lokalnie

Jak sformatować JSON?

  1. 1.

    Wklej dane

    Wklej JSON w lewe pole, otwórz plik .json lub wstaw przykład.

  2. 2.

    Wybierz tryb

    „Formatuj” dodaje wcięcia i nowe linie (2 spacje, 4 spacje lub tabulator), „Minifikuj” usuwa wszystkie zbędne białe znaki.

  3. 3.

    Sprawdź poprawność

    Zielony komunikat oznacza poprawny JSON. Przy błędzie zobaczysz linię, kolumnę, fragment kodu ze znacznikiem ^ i wyjaśnienie.

  4. 4.

    Skopiuj lub pobierz

    Skopiuj wynik do schowka albo pobierz go jako plik .json.

Najczęstsze błędy w JSON i jak je naprawić

BłądNiepoprawniePoprawnie
Przecinek po ostatnim elemencie{"a": 1,}{"a": 1}
Pojedyncze cudzysłowy{'a': 'x'}{"a": "x"}
Klucz bez cudzysłowu{a: 1}{"a": 1}
Komentarze{"a": 1 // id}JSON nie obsługuje komentarzy
Zero wiodące, NaN{"kod": 007}{"kod": "007"}
Nowa linia w tekścieEnter wewnątrz "…""linia 1\nlinia 2"

Walidator działa zgodnie ze standardem RFC 8259 / ECMA-404. Zapis z komentarzami i przecinkami na końcu to JSON5 lub JSONC (np. pliki ustawień VS Code) - nie jest poprawnym JSON-em dla JSON.parse.

Formatowanie czy minifikacja?

Formatowanie (beautify, pretty print) dodaje wcięcia i podziały linii, dzięki czemu strukturę łatwo przeczytać, porównać w Git i debugować odpowiedź API. Minifikacja usuwa spacje, tabulatory i znaki nowej linii poza tekstami - plik jest mniejszy (często o 20-40%), co przyspiesza przesyłanie. Przykład: { "a": [ 1, 2 ] } po minifikacji to {"a":[1,2]}.

Opcja sortowania kluczy układa klucze obiektów alfabetycznie na każdym poziomie (tablice zachowują kolejność), co ułatwia porównywanie dwóch wersji tego samego dokumentu.

Typy danych w JSON

  • obiekt - {"klucz": wartość}, klucze zawsze w podwójnym cudzysłowie,
  • tablica - [1, 2, 3],
  • tekst - "Kraków" (znaki specjalne: \" \\ \n \t \uXXXX),
  • liczba - 42, -3.14, 1e6 (bez zer wiodących, NaN i Infinity),
  • wartości logiczne true/false oraz null.

Uwaga: JavaScript przechowuje liczby jako 64-bitowe liczby zmiennoprzecinkowe, więc liczby całkowite większe niż 253 − 1 (9 007 199 254 740 991) mogą po sformatowaniu stracić precyzję. Długie identyfikatory najlepiej przesyłać jako tekst.

Jak czytać komunikat o błędzie?

Walidator podaje linię, kolumnę i numer znaku, w którym parser natrafił na problem, oraz pokazuje fragment kodu ze wskaźnikiem. Pamiętaj, że miejsce wykrycia błędu bywa za jego przyczyną: brakujący przecinek między elementami w linii 12 zostanie zgłoszony na początku linii 13, a niezamknięty cudzysłów - dopiero na końcu dokumentu jako „nieoczekiwany koniec danych”. Najpierw sprawdź więc znak wskazany przez narzędzie, a potem element tuż przed nim. Przy plikach z API pomocne jest też porównanie dwóch wersji odpowiedzi w porównywarce tekstów po sformatowaniu obu z sortowaniem kluczy.

Najczęściej zadawane pytania

Czy moje dane JSON są wysyłane na serwer?

+
Nie. Formatowanie i walidacja odbywają się w całości w Twojej przeglądarce, więc możesz bezpiecznie wklejać odpowiedzi API z tokenami czy dane klientów.

Dlaczego mój JSON jest niepoprawny, choć działa w JavaScripcie?

+
Obiekt w JavaScripcie dopuszcza klucze bez cudzysłowu, pojedyncze cudzysłowy, komentarze i przecinki na końcu. Standard JSON tego nie pozwala - klucze i teksty muszą być w podwójnym cudzysłowie.

Jak znaleźć miejsce błędu?

+
Narzędzie podaje numer linii i kolumny, pokazuje fragment kodu ze znacznikiem ^ pod błędnym znakiem i wyjaśnia przyczynę, np. „przecinek przed zamknięciem obiektu jest niedozwolony”.

Jakie wcięcie wybrać: 2 czy 4 spacje?

+
To kwestia konwencji. 2 spacje są standardem w ekosystemie JavaScript (npm, package.json), 4 spacje są popularne w Pythonie i Javie. Tabulator pozwala każdemu ustawić własną szerokość w edytorze.

Czy narzędzie obsługuje duże pliki?

+
Tak, pliki o rozmiarze kilku-kilkunastu MB są przetwarzane bez problemu; limit zależy od pamięci przeglądarki.

Aktualizacja: