Przejdź do treści

{ } · 2 / 4 / tab · minify

Formatter i walidator JSON

Formatter JSON dodaje wcięcia do zwartego JSON-a: dokument o rozmiarze 60 bajtów rośnie do 86 bajtów przy 2 spacjach i do 102 bajtów przy 4. Wklej JSON, aby otrzymać tekst sformatowany lub zminifikowany albo linię i kolumnę pierwszego błędu.

Wszystko działa w tej karcie i nic nie jest przesyłane. Parser stosuje się do RFC 8259, więc komentarze, apostrofy, końcowe przecinki i klucze bez cudzysłowów są zgłaszane jako błędy.

Scanned by NortonTM Safe Web

W skrócie

Cena
Bez opłat
Konto
Niepotrzebne
Standard
RFC 8259 (JSON)
Limity
5 MB danych wejściowych, 512 poziomów zagnieżdżenia
Wynik
2 spacje, 4 spacje, tabulator lub postać zminifikowana, klucze opcjonalnie posortowane
Wysyłanie plików
Brak — tekst zostaje w karcie przeglądarki

Błędy JSON i precyzja liczb

Te wartości pochodzą z parsera używanego na tej stronie. Linie i kolumny liczone są od 1.

Pierwszy błąd znaleziony w wadliwym dokumencie
DokumentKod przyczynyLinia:kolumna
{"a": 1,}trailing_comma1:8
{'a': 1}single_quotes1:2
[1, 2unexpected_end1:6
{"a": 01}bad_number1:8
{"a": "x\q"}bad_escape1:9
{"a": 1 "b": 2}missing_comma1:9
Liczby, które JSON.parse zaokrągla
Liczba w zapisieWartość zwracana przez JSON.parse
1234567890123456789012345678901234567000
90071992547409939007199254740992
1.00000000000000011
1E400Infinity

Jak sformatować JSON

1

Wklej swój JSON

Wpisz lub wklej dokument JSON o rozmiarze do 5 MB w polu wejściowym. Przykład jest już wstawiony, więc możesz najpierw zobaczyć wynik.

2

Wybierz postać wyniku

Wybierz 2 spacje, 4 spacje, tabulator lub postać zminifikowaną. Zaznacz pole, aby posortować klucze każdego obiektu według kolejności jednostek kodu.

3

Skopiuj lub popraw

Skopiuj lub pobierz wynik. Jeśli JSON jest błędny, komunikat podaje linię, kolumnę i przyczynę, a daszek wskazuje miejsce w wadliwej linii.

Jak działa formatter JSON

Strona odczytuje tekst własnym parserem gramatyki JSON z RFC 8259, a potem zapisuje go z wybranymi wcięciami. Ponieważ parser jest częścią strony, każda przeglądarka pokazuje ten sam komunikat dla tego samego błędu. Wbudowana funkcja JSON.parse formułuje błędy inaczej w Chrome, Firefox i Safari, a nie wszystkie wskazują linię i kolumnę.

Liczby i sekwencje ucieczki w ciągach są kopiowane dokładnie tak, jak je wpisano. JSON.parse zamienia 12345678901234567890 na 12345678901234567000, bo liczba w JavaScripcie to 64-bitowa liczba zmiennoprzecinkowa z około 15 do 17 cyframi znaczącymi. Ta strona zachowuje wszystkie 20 cyfr i informuje, kiedy liczba zostałaby zaokrąglona. RFC 8259 mówi, że nazwy w obiekcie powinny być unikalne, więc zduplikowane klucze są zachowywane i zgłaszane. Limity to 5 MB danych wejściowych i 512 poziomów zagnieżdżenia.

Pytania o formatter JSON

Jak sformatować JSON online?

Wklej JSON w polu wejściowym. Sformatowany tekst pojawia się od razu, z 2 spacjami, 4 spacjami lub tabulatorem na każdy poziom. Przykład o rozmiarze 60 bajtów zajmuje 86 bajtów przy 2 spacjach i 102 bajty przy 4 spacjach.

Co znaczy „unexpected token” i gdzie jest mój błąd?

Oznacza to, że parser napotkał znak, którego gramatyka JSON w tym miejscu nie dopuszcza. Ta strona podaje przyczynę, linię i kolumnę. Dla {"a": 1,} zgłasza trailing_comma w linii 1, kolumnie 8.

Dlaczego końcowy przecinek jest w JSON błędem?

Gramatyka z RFC 8259 wymaga wartości po każdym przecinku, więc [1, 2,] i {"a": 1,} są niepoprawne. Literały obiektów w JavaScripcie dopuszczają końcowy przecinek, ale JSON nie. Usuń ostatni przecinek.

Czy JSON może zawierać komentarze lub apostrofy?

Nie. RFC 8259 nie przewiduje komentarzy, a ciągi i klucze używają wyłącznie cudzysłowów podwójnych. Formaty takie jak JSON5 i JSONC dopuszczają jedno i drugie, ale to inne formaty, a ta strona zgłasza je jako błędy.

Czy formatter zmienia moje liczby?

Nie. Liczby i sekwencje ucieczki są zapisywane dokładnie tak, jak je wpisano. JSON.parse zaokrągliłby 12345678901234567890 do 12345678901234567000, ale ta strona zachowuje każdą cyfrę, więc formatowanie niczego nie gubi.

Czy mój JSON jest gdzieś przesyłany?

Nie. Strona działa w karcie przeglądarki i nie wysyła nic na żaden serwer. Po wczytaniu działa też bez sieci. Limit danych wejściowych to 5 MB.