{ } · 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.
- {"a": 1,} → 1:8
- 12345678901234567890 → 12345678901234567000
- 60 B → 86 B (2) → 102 B (4)
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.
| Dokument | Kod przyczyny | Linia:kolumna |
|---|---|---|
| {"a": 1,} | trailing_comma | 1:8 |
| {'a': 1} | single_quotes | 1:2 |
| [1, 2 | unexpected_end | 1:6 |
| {"a": 01} | bad_number | 1:8 |
| {"a": "x\q"} | bad_escape | 1:9 |
| {"a": 1 "b": 2} | missing_comma | 1:9 |
| Liczba w zapisie | Wartość zwracana przez JSON.parse |
|---|---|
| 12345678901234567890 | 12345678901234567000 |
| 9007199254740993 | 9007199254740992 |
| 1.0000000000000001 | 1 |
| 1E400 | Infinity |
Jak sformatować JSON
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.
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.
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.