Przejdź do treści

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. 1. Wklej JSON. Od pojedynczej wartości po dużą odpowiedź API. Pole liczy wiersze i bajty w trakcie pisania.
  2. 2. Wybierz wcięcie. Wybierz 2, 4 lub 8 spacji. Ustawienie działa tylko przy Formatuj.
  3. 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. 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:

Typowe przyczyny błędów parsowania JSON
BłądPrzykładPoprawka
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 plus007, +5Zapisz 7 i 5.
NaN, Infinity lub undefined{"x": NaN}Nie istnieją w JSON; użyj null lub łańcucha.
Surowy podział wiersza w łańcuchuznak nowej linii w cudzysłowachZapisz 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. 9007199254740993 wraca jako 9007199254740992. 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.50 staje się 1.5, 1e2 staje się 100, a \u00e9 staje 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.50 w 1.5 i 1e2 w 100 oraz 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.

Powiązane narzędzia

Więcej z kategorii Dane, znaczniki i kod