JSON formatter, walidator i minifikator
JSON formatter online: wklej JSON – narzędzie od razu go sprawdza, wskazuje dokładne miejsce błędu z wyjaśnieniem i zwraca wynik sformatowany albo zminifikowany, gotowy do skopiowania. Nic nie jest wysyłane.
Jak to obliczamy
Co sprawdza narzędzie
Reguły pochodzą z RFC 8259, internetowego standardu JSON (odpowiednik ECMA-404). Narzędzie czyta tekst znak po znaku własnym parserem i zatrzymuje się na pierwszym naruszeniu. Komunikat podaje linię i kolumnę, zaznacza miejsce znakiem ^ i wyjaśnia, co jest nie tak – tak samo w każdej przeglądarce, bo komunikaty wbudowanego JSON.parse różnią się między przeglądarkami i często niewiele mówią („Unexpected token”).
Najczęstsze błędy w JSON
- Przecinek na końcu po ostatnim elemencie:
{"a": 1,}– w JavaScripcie dozwolony, w JSON błędny. - Apostrofy albo klucze bez cudzysłowu:
{'a': 1},{a: 1}– poprawnie:{"a": 1}. - Komentarze (
//,/* */) w JSON nie istnieją. - Wartości z JavaScriptu lub Pythona:
undefined,NaN,Infinity,True,None– dozwolone są tylkotrue,falseinull. - Liczby: bez zera na początku (
012), bez+1, bez.5czy5., bez zapisu szesnastkowego (0x1F). Separatorem dziesiętnym jest zawsze kropka, nigdy przecinek. - Łańcuchy znaków: nową linię lub tabulator zapisuje się jako
\nalbo\t, pojedynczy ukośnik wsteczny jako\\(typowe przy ścieżkach Windows). - Niewidoczne znaki: twarda spacja (U+00A0) skopiowana z Worda lub strony WWW nie jest w JSON białym znakiem.
Formatowanie, minifikacja, sortowanie
Wynik powstaje od nowa ze sprawdzonej treści: Formatuj wcina każdy poziom 2 lub 4 spacjami albo tabulatorem, Minifikuj usuwa wszystkie zbędne białe znaki (najmniejszy plik). Liczby i łańcuchy zostają dokładnie w zapisanej postaci – inaczej niż przy JSON.parse + JSON.stringify 1.0 nie zamienia się w 1, a 12345678901234567890 nie jest zaokrąglane. Sortowanie porządkuje klucze według jednostek kodowych Unicode, jak w JSON Canonicalization Scheme (RFC 8785): wielkie litery przed małymi, litery z ogonkami i akcentami (np. ą, ł, ż) za nimi.
Ostrzeżenia zamiast błędów
Powtórzone klucze w tym samym obiekcie nie są zabronione przez RFC 8259, ale zawodne: większość programów zachowuje tylko ostatnią wartość. Znacznik kolejności bajtów (BOM) na początku parser może pominąć – narzędzie to robi i informuje o tym.
Ograniczenia
Narzędzie sprawdza składnię, nie znaczenie: czy brakuje wymaganych pól albo typy się zgadzają, sprawdza JSON Schema. Kolumny liczą znaki Unicode od 1 (tabulator = 1 znak); edytory z szerokością tabulatora 4 pokazują wyższą kolumnę. Wejście jest ograniczone do 5 milionów znaków i 1000 poziomów zagnieżdżenia.
Najczęściej zadawane pytania
Czy mój JSON jest wysyłany lub zapisywany?
Nie. Walidacja i formatowanie działają w całości w przeglądarce. Tekst nie trafia do paska adresu i nie jest zapisywany – w linku są tylko opcje (wynik, wcięcie, sortowanie).
Dlaczego komentarze i przecinki na końcu są niedozwolone?
JSON jest celowo minimalny, żeby każdy język programowania czytał go tak samo. Komentarze i końcowe przecinki należą do rozszerzeń takich jak JSON5 czy JSONC (np. ustawienia VS Code) – jako zwykły JSON takie pliki są błędne.
Mój JSON jest poprawny, a program i tak go odrzuca – dlaczego?
Zwykle treść nie pasuje do tego, czego oczekuje program: brakuje wymaganego pola, jest liczba zamiast tekstu albo inna struktura. Opisuje to JSON Schema lub dokumentacja API. Sprawdź też ostrzeżenie o powtórzonych kluczach.
Czy linia i kolumna zgadzają się z moim edytorem?
Linia zawsze. Kolumny liczą znaki od 1; tabulator to jeden znak, emoji też. Edytory, które wyświetlają tabulator jako 4 kolumny, pokażą wyższą liczbę. „Przejdź do błędu” ustawia kursor dokładnie w tym miejscu.
Jak znaleźć problem przy komunikacie o nieoczekiwanym końcu?
Prawie zawsze brakuje zamykającego } lub ] albo cudzysłowu. Komunikat podaje linię nawiasu, który nigdy nie został zamknięty – najpierw sprawdź koniec tego bloku.
Jak sformatować JSON w Notepad++?
Notepad++ nie formatuje JSON bez dodatkowej wtyczki (np. JSON Viewer). Szybciej: wklej tekst tutaj, wybierz „Formatuj” i skopiuj wynik z powrotem – przy okazji od razu widać, czy JSON jest poprawny.
Źródła i podstawa prawna
- STD 90, §§ 2–9: IETF RFC 8259 – The JavaScript Object Notation (JSON) Data Interchange Format
- ECMA-404 – The JSON Data Interchange Syntax, 2nd edition
- § 3.2.3: IETF RFC 8785 – JSON Canonicalization Scheme (Sortierung der Schlüssel)
- JSONTestSuite (Nicolas Seriot) – Testfälle für JSON-Parser
Stan na:
Podobne narzędzia
- Walidator XML i CSV onlineWalidator XML online: sprawdź poprawność składni XML i zgodność CSV z RFC 4180 – błędy z wierszem i kolumną, wykrywanie separatora, podgląd tabeli. Lokalnie.
- Regex testerRegex tester: sprawdzaj wyrażenia regularne JavaScript na żywo – podświetlone dopasowania, grupy w tabeli i objaśnienie wzorca. Za darmo, bez wysyłania danych.
- Kodowanie i dekodowanie Base64Kodowanie i dekodowanie Base64 oraz Base64url z poprawnym UTF-8, do tego kodowanie URL (percent-encoding). Jasne komunikaty błędów, działa w przeglądarce.
- Generator hash: SHA-256, SHA-512, SHA-1, MD5Generator hash online: oblicz SHA-256, SHA-384, SHA-512, SHA-1 i MD5 tekstu lub pliku i sprawdź sumę kontrolną – lokalnie w przeglądarce, bez wysyłania.
- Generator UUID: twórz i sprawdzaj UUID v4 i v7Generuj UUID online: wersja 4 (losowa) lub 7 (z czasem, sortowalna), do 1000 naraz. Sprawdź poprawność UUID i odczytaj wersję, wariant i znacznik czasu.
- Konwerter czasu Unix (timestamp)Konwerter czasu Unix: zamień timestamp na datę i datę na timestamp. Sekundy, milisekundy, mikro- i nanosekundy rozpoznawane automatycznie; UTC i ISO 8601.