Jak używać
- Wklej JSON w pole, otwórz plik lub kliknij „Wypróbuj przykład”, aby wyświetlić raport błędów.
- Odczytaj wynik: zielony komunikat oznacza poprawny JSON, a w przypadku błędu zobaczysz pierwszy błąd, numer wiersza i kolumny oraz oznaczenie problemu.
- Popraw błąd zgodnie ze wskazówką i sprawdź ponownie — wynik aktualizuje się podczas pisania.
- Jeśli JSON jest poprawny, sprawdź statystyki: typ wartości głównej, liczbę kluczy, głębokość zagnieżdżenia i rozmiar w bajtach.
Jak to działa
Walidator sprawdza składnię zgodnie ze standardem JSON (RFC 8259 / ECMA-404), korzystając z wbudowanego parsera JSON przeglądarki. Dokument zaakceptowany przez to narzędzie jest więc również akceptowany przez JavaScript JSON.parse i zgodne ze standardem parsery w innych językach. Jeśli parsowanie się nie powiedzie, rygorystyczny moduł sprawdzający przygotowany dla tego narzędzia analizuje tekst jednokrotnie, aby znaleźć pierwszy błąd i podać jego dokładny wiersz oraz kolumnę, a następnie wyświetla ten wiersz ze znacznikiem ^ pod problematycznym miejscem.
Podpowiedzi dotyczą błędów często popełnianych podczas ręcznego pisania JSON lub kopiowania go z JavaScript: przecinka po ostatnim elemencie, ciągów znaków w pojedynczych cudzysłowach, kluczy bez cudzysłowów, komentarzy // lub /* */, wartości takich jak NaN, Infinity lub undefined, nieescapowanych znaków nowej linii w ciągach znaków oraz dwóch dokumentów JSON wklejonych jeden po drugim (jak w plikach JSON Lines). Zgłaszany jest tylko pierwszy błąd, ponieważ jeden błąd często powoduje błędną interpretację dalszej części tekstu.
Narzędzie sprawdza tylko składnię. Nie weryfikuje danych względem JSON Schema, więc nie wykryje na przykład brakującego wymaganego pola. Nie ostrzega też o zduplikowanych kluczach: standard na nie zezwala, a większość parserów zachowuje ostatnią wartość. Statystyki uwzględniają klucze we wszystkich obiektach na każdym poziomie; głębokość wynosi 1 dla płaskiego obiektu lub tablicy i zwiększa się o jeden z każdym poziomem zagnieżdżenia.
Przykłady
Konfiguracja skopiowana z JavaScript
{name: 'demo', debug: true,} powoduje błąd w wierszu 1, kolumnie 2: „Klucze obiektów muszą być ujęte w podwójne cudzysłowy”. Po ujęciu klucza w cudzysłowy kolejne sprawdzenie wskazuje ciąg znaków w pojedynczych cudzysłowach, a następnie końcowy przecinek.
Plik dziennika z jednym obiektem w każdym wierszu
Wklejenie dwóch wierszy, na przykład {"id":1} i {"id":2}, powoduje komunikat „Po końcu wartości JSON znajduje się dodatkowa zawartość” w wierszu 2. Każdy wiersz osobno jest prawidłowym JSON (JSON Lines), ale razem trzeba je ująć w [ ] i oddzielić przecinkiem.
Sprawdzanie danych API
Odpowiedź o rozmiarze 2 MB zostaje zweryfikowana w chwilę. Wynik pokazuje typ główny: Array, 1 500 elementów na najwyższym poziomie i głębokość zagnieżdżenia 4 — to szybki test poprawności przed napisaniem kodu, który będzie z niej korzystać.
Często zadawane pytania
Czy narzędzie sprawdza zgodność z JSON Schema?
Nie. Sprawdza, czy tekst jest poprawnym składniowo JSON-em. Weryfikacja wymaganych pól, typów lub formatów wymaga walidatora JSON Schema, którego to narzędzie nie zawiera.
Dlaczego wyświetlany jest tylko jeden błąd?
Po pierwszym błędzie składni parser nie wie, co autor miał na myśli, dlatego kolejne „błędy” często są skutkiem pierwszego. Popraw wskazany problem — jeśli występuje następny, pojawi się od razu.
Czy komentarze lub przecinki końcowe są kiedykolwiek poprawne?
Nie w JSON-ie. Formaty takie jak JSON5 i JSONC (używane w plikach ustawień niektórych edytorów) dopuszczają komentarze, ale standardowe parsery JSON ich nie akceptują, więc tutaj są zgłaszane jako błędy.
Czy pojedyncza wartość, np. 42 lub „hello”, jest poprawnym JSON-em?
Tak. Od RFC 7159 dowolna wartość JSON może być wartością główną, nie tylko obiekt lub tablica. Niektóre starsze narzędzia i API nadal wymagają obiektu lub tablicy na najwyższym poziomie.
Dlaczego numer kolumny może różnić się od tego w moim edytorze?
Kolumny są liczone w jednostkach kodowych UTF-16, tak jak JavaScript liczy długość ciągu znaków. Emoji i niektóre rzadkie znaki zajmują dwie jednostki, a tabulator jedną kolumnę, choć edytory mogą wyświetlać go szerzej.
Prywatność
Weryfikacja odbywa się w całości w przeglądarce. Wklejony lub otwarty JSON nie jest przesyłany, zapisywany ani uwzględniany w danych analitycznych.