Formater i walidator JSON
Wklej JSON i sformatuj go z wcięciem 2, 4 lub 8 spacji, ściśnij do jednego wiersza albo po prostu sprawdź, czy się parsuje. Poprawny JSON wraca kolorowy, z rozmiarem przed i po; niepoprawny — z komunikatem własnej przeglądarki. Za darmo, bez rejestracji, a to, co wklejasz, nie opuszcza Twojej przeglądarki.
0 wierszy · 0 bajtów
Jak korzystać z formatera JSON
- 1. Wklej JSON. Od pojedynczej wartości po dużą odpowiedź API. Pole liczy wiersze i bajty w trakcie pisania.
- 2. Wybierz wcięcie. Wybierz 2, 4 lub 8 spacji. Ustawienie działa tylko przy Formatuj.
- 3. Wybierz akcję. Formatuj dodaje wcięcia i podziały wierszy, Minifikuj usuwa każdą zbędną spację i podział wiersza, a Tylko waliduj sprawdza składnię i pokazuje zielony lub czerwony werdykt bez wyniku.
- 4. Przeczytaj wynik. Poprawny JSON jest pokazany kolorowo (klucze na fioletowo, łańcuchy na zielono, liczby na niebiesko, true i false na pomarańczowo, null na czerwono) wraz z rozmiarem wejścia, rozmiarem wyjścia i procentową zmianą. Niepoprawny JSON pokazuje komunikat parsera. Kopiuj wynik kopiuje to, co widzisz.
Co uznawane jest za poprawny JSON
Narzędzie przekazuje tekst parserowi JSON wbudowanemu w silnik JavaScript, czyli przyjmuje to, co dopuszcza standard formatu, RFC 8259 (ta sama gramatyka co ECMA-404), i nic ponad to. Jest to surowsze niż literał obiektu w JavaScripcie, dlatego kod, który działa w skrypcie, tutaj często nie przechodzi. Typowe przyczyny:
| Błąd | Przykład | Poprawka |
|---|---|---|
| Końcowy przecinek | {"a": 1,} | Usuń ostatni przecinek. |
| Pojedyncze cudzysłowy | {'a': 1} | Używaj podwójnych cudzysłowów dla każdego klucza i łańcucha. |
| Klucz bez cudzysłowów | {a: 1} | Ujmij go w cudzysłowy: {"a": 1}. |
| Komentarz | // note lub /* note */ | JSON nie ma komentarzy; usuń je. |
| Wiodące zero lub znak plus | 007, +5 | Zapisz 7 i 5. |
| NaN, Infinity lub undefined | {"x": NaN} | Nie istnieją w JSON; użyj null lub łańcucha. |
| Surowy podział wiersza w łańcuchu | znak nowej linii w cudzysłowach | Zapisz go jako dwa znaki \n. |
| Brakujący przecinek | {"a": 1 "b": 2} | Oddziel składowe przecinkami. |
Samo 42, "text" lub null też jest poprawne: od RFC 7159 tekst JSON może być dowolną wartością, nie tylko obiektem czy tablicą. Zapisane wielką literą True ani NULL nie są poprawne — trzy literały zapisuje się małymi literami.
Co zmienia formatowanie
To narzędzie parsuje JSON i zapisuje go z powrotem, więc wynik to te same dane w nowym układzie, a nie dosłowna kopia Twojego tekstu. Cztery rzeczy mogą się różnić; dwie pierwsze mają znaczenie, jeśli formatujesz JSON zasilający inny system:
- Duże liczby całkowite tracą precyzję. Liczby w JavaScripcie to 64-bitowe liczby zmiennoprzecinkowe, więc całkowite powyżej 9 007 199 254 740 991 (253 − 1) są zaokrąglane.
9007199254740993wraca jako9007199254740992. Jeśli Twoje identyfikatory są tak duże, zapisuj je jako łańcuchy. - Zduplikowane klucze się scalają. RFC 8259 mówi, że nazwy powinny być unikalne, ale nie zabrania powtórzeń; to narzędzie zachowuje ostatnią wartość, a wcześniejsze usuwa.
- Klucze liczbowe przesuwają się na początek. W JavaScripcie klucze takie jak
"1"i"2"są wymieniane przed pozostałymi, rosnąco, więc{"b":1,"2":1,"1":1}zapisuje się jako{"1":1,"2":1,"b":1}. Pozostałe klucze zachowują kolejność. - Liczby i sekwencje ucieczki są przepisywane.
1.50staje się1.5,1e2staje się100, a\u00e9staje sięé.
Przykład krok po kroku
Weź to 119-bajtowe wejście, które zawiera duży identyfikator, końcowe zero, wykładnik i sekwencję ucieczki:
Dane wejściowe
{"title":"APA Manual","year":2020,"tags":["style","7th"],"id":9007199254740993,"price":1.50,"x":1e2,"name":"caf\u00e9"}
Formatuj z 2 spacjami zapisuje 156 bajtów (+31%), po jednej składowej w wierszu, z "id": 9007199254740992, "price": 1.5, "x": 100 i "name": "café". Minifikuj zapisuje 114 bajtów (-4%) w jednym wierszu, z tymi samymi zmianami. Nic innego w danych się nie zmienia. Rozmiary są liczone w bajtach UTF-8, więc é liczy się jako dwa.
Którego narzędzia potrzebujesz?
Ta strona dotyczy samego JSON. Jeśli Twoje dane są w innym formacie, pomocne są narzędzia pokrewne: CSV na JSON dla arkuszy, planowane konwertery Konwerter YAML na JSON i XML na JSON, Formater XML dla dokumentów XML oraz Formater HTML dla znaczników.
Najczęstsze pytania
- Co robi formater JSON?
- Parsuje JSON i zapisuje go z powrotem z jednolitymi wcięciami i jedną składową w wierszu, dzięki czemu zminifikowana odpowiedź API staje się czytelna. Ponieważ najpierw musi go sparsować, działa też jako walidator: tekst, który nie jest poprawnym JSON, daje błąd zamiast wyniku.
- Dlaczego mój JSON jest uznawany za niepoprawny?
- Zwykle przez jeden z błędów z tabeli powyżej: końcowy przecinek, pojedyncze cudzysłowy, klucz bez cudzysłowów, komentarz albo brakujący przecinek. Komunikat pochodzi z parsera JSON Twojej przeglądarki, więc jego treść różni się między Chrome, Firefoksem a Safari, i może podawać pozycję lub nie. Szukaj problemu w miejscu, które wskazuje, lub tuż przed nim.
- Czy mogę sformatować JSON z komentarzami, JSON5 lub JSONC?
- Nie. Komentarze, końcowe przecinki i pojedyncze cudzysłowy nie należą do JSON, a to narzędzie używa ścisłego parsera. Usuń je najpierw albo zamień plik na zwykły JSON w edytorze.
- Czym różnią się Formatuj, Minifikuj i Tylko waliduj?
- Formatuj dodaje wcięcia i podziały wierszy, Minifikuj usuwa wszystkie zbędne białe znaki, dając najmniejszy tekst, a Tylko waliduj sprawdza składnię i pokazuje werdykt bez wyniku. Wszystkie trzy używają tego samego parsera, więc dokument, który przechodzi jedną z nich, przechodzi wszystkie.
- Dlaczego liczba w moim JSON się zmieniła?
- Narzędzie czyta liczby jako zmiennoprzecinkowe JavaScript i zapisuje je w najkrótszej postaci JavaScript. To zamienia
1.50w1.5i1e2w100oraz zaokrągla całkowite większe niż 253 − 1. Jeśli bardzo duże identyfikatory mają przetrwać w dokładnej postaci, przechowuj je jako łańcuchy. - Czy mój JSON jest gdzieś przesyłany?
- Nie. Parsowanie, formatowanie i podświetlanie działają w Twojej przeglądarce, a tekst, który wklejasz, nie jest wysyłany do CitationEasy ani nikogo innego. Na wspólnym komputerze wyczyść pole po zakończeniu pracy.
- Czy mogę sortować klucze lub użyć tabulatorów do wcięć?
- Nie tutaj. Wcięcie to 2, 4 lub 8 spacji, a klucze zachowują kolejność z wejścia, poza kluczami liczbowymi, które przesuwają się na początek, jak opisano wyżej.