Kategoria: Programistyczne

Walidator JSON

Sprawdź poprawność JSON i znajdź dokładne miejsce błędu.

Działa w przeglądarcePrzetwarzanie lokalne. Dane wejściowe nie opuszczają Twojego urządzenia.

Szczegóły

O tym narzędziu

Sprawdza, czy JSON jest poprawny, a gdy nie jest - wskazuje dokładną linię i kolumnę, w której parsowanie się zatrzymało, wraz ze zrozumiałym wyjaśnieniem, czego się tam spodziewano.

JSON to niewielki format o ostrych regułach i niemal każda awaria bierze się z kilku z nich. Klucze muszą stać w cudzysłowach prostych - apostrofy to nie JSON, choćby wyglądały podobnie. Przecinek po ostatnim elemencie obiektu albo tablicy to błąd składni, mimo że sam JavaScript go dopuszcza. Komentarzy w tym formacie nie ma w ogóle. NaN i Infinity nie są poprawnymi liczbami, podobnie jak wiodące zero czy wiodący plus. A niezaescapowany znak nowej linii w napisie kończy ten napis, zamiast go kontynuować.

Pozycja liczy się tu tak samo jak komunikat, bo parser zgłasza miejsce, w którym się poddał, a nie miejsce błędu. Brakujący nawias klamrujący wychodzi na jaw dopiero na końcu pliku, a niezamknięty napis połyka wszystko aż do następnego cudzysłowu - więc linia z komunikatu to często objaw, a przyczyna jest wyżej. Świadomość tego zamienia mylący błąd w poszukiwania z określonym kierunkiem.

Narzędzie sprawdza składnię, nie znaczenie: powie, że dokument się parsuje, ale nie że ma pola wymagane przez Twoje API ani że typy się zgadzają. To walidacja względem schematu, czyli osobna robota. Jeśli chcesz dokument sformatować, a nie sprawdzić, robi to formatowanie JSON i zgłasza te same błędy. Wszystko liczy się w przeglądarce, co ma znaczenie, gdy ładunek to prawdziwa odpowiedź API z prawdziwymi danymi.

Wypróbuj też

  • Formatuj, wcinaj i porządkuj JSON.

    Działa w przeglądarceProgramistyczne
  • Podejrzyj nagłówek i dane tokenu JSON Web Token.

    Działa w przeglądarceProgramistyczne

Warto wiedzieć

Najczęstsze pytania

Czy narzędzie sprawdza zgodność ze schematem JSON Schema?
Jeszcze nie. Na razie sprawdza wyłącznie składnię, czyli to, czy dokument się parsuje. To, czy ma wymagane pola we właściwych typach, jest walidacją względem schematu i jest planowane jako osobne narzędzie, żeby nigdy nie pomylić jednego z drugim.
Dlaczego przecinek na końcu to błąd?
Bo JSON go nie dopuszcza, choć JavaScript, Python i większość języków owszem. To najczęstszy błąd składni w JSON-ie. Część parserów przyjmuje go jako rozszerzenie, co sprawę tylko pogarsza: plik działa w jednym miejscu, a w drugim nie.
Czy mogę użyć apostrofów albo komentarzy?
Nie, ani jednego, ani drugiego. JSON wymaga cudzysłowów prostych wokół każdego napisu i każdego klucza, a składni komentarzy nie ma w ogóle. Formaty JSON5 i JSONC dokładają jedno i drugie i pliki konfiguracyjne często z nich korzystają, ale ścisły parser odrzuci taką treść jako niepoprawny JSON.
Błąd wskazuje linię, która wygląda dobrze. Dlaczego?
Bo parser zgłasza miejsce, w którym nie mógł już kontynuować, a nie miejsce, w którym popełniono błąd. Niezamknięty napis albo brakujący nawias wychodzą na jaw dopiero później, czasem na samym końcu pliku, więc prawdziwa przyczyna jest zwykle powyżej wskazanej linii. Zacznij tam i czytaj w górę.