Walidator JSON
Wklej dowolny dokument JSON i sprawdź, czy parsuje się czysto względem RFC 8259. Niepoprawne dane wracają z dokładnym problemem, przecinek po ostatnim elemencie tablicy, klucz bez cudzysłowów, niezakończony ciąg znaków, pojedyncze cudzysłowy tam, gdzie JSON wymaga podwójnych, błędne sekwencje ucieczki, wraz z linią i kolumną, w której parser się poddał. Przydatne przy debugowaniu odpowiedzi API, pliku konfiguracyjnego, package.json ręcznie edytowanego przez kolegę z zespołu albo wyniku generatora kodu.
Jak działa walidacja JSON
-
1
Wklej swój JSON
Wrzuć ładunek, plik konfiguracyjny albo odpowiedź API. Białe znaki nie przeszkadzają; tabulatory i komentarze tak (czysty JSON nie ma komentarzy).
-
2
Parsuj ścisłym parserem RFC 8259
Walidator odrzuca wszystko, czego zabrania specyfikacja: przecinki na końcu, klucze bez cudzysłowów, pojedyncze cudzysłowy, `undefined`, liczby szesnastkowe.
-
3
Przeczytaj błąd
Jeśli walidacja się nie powiedzie, otrzymasz komunikat parsera plus przybliżoną lokalizację: wystarczająco, aby przejść prosto do znaku.
-
4
Popraw i zwaliduj ponownie
Skoryguj problem, wklej ponownie i potwierdź, że dokument jest poprawny przed commitem lub wysłaniem.
Co dopuszcza ścisły JSON, a czego nie
Krąży mnóstwo formatów „prawie JSON“ (JSON5, JSONC, HJSON, hybrydy w stylu YAML). Sama specyfikacja JSON jest mała i ścisła; ten walidator mówi, czy twój dokument przetrwa ścisły parser, a właśnie ten uruchamia większość systemów po stronie odbiorcy.
Reguły, które wpędzają większość ludzi w kłopoty
| Reguła | Poprawne | Niepoprawne |
|---|---|---|
| Klucze muszą być ciągami w podwójnych cudzysłowach | {"a": 1} |
{a: 1} |
| Ciągi używają tylko podwójnych cudzysłowów | "hello" |
'hello' |
| Bez przecinków na końcu | [1, 2, 3] |
[1, 2, 3,] |
| Bez komentarzy | (brak) | // komentarz lub /* */ |
Liczby: bez wiodącego +, bez .5 |
0.5 |
+1, .5 |
| Tylko zarezerwowane literały | true, false, null |
undefined, NaN |
| Kodowanie UTF-8 | Ciągi Unicode | Niepoprawne sekwencje bajtów |
Częste błędy i co oznaczają
- „Unexpected token
}“, masz przecinek na końcu przed zamykającym nawiasem klamrowym. - „Expected property name“, klucz jest bez cudzysłowów albo zapomniałeś cudzysłowów wokół klucza otwierającego.
- „Unexpected end of input“, otwierający
{lub[nie jest zamknięty; policz nawiasy. - „Bad control character“, tabulator, znak nowej linii lub inny bajt sterujący wewnątrz literału ciągu. Zapisz je jako
\t,\nitd. - „Duplicate key“, w istocie nie jest to błąd specyfikacji JSON (specyfikacja mówi, że klucze POWINNY być unikalne), ale wiele walidatorów ostrzega. Walidator oznacza to jako uwagę, nie twardy błąd.
Jeśli potrzebujesz luźniejszych formatów
- JSON5 dopuszcza przecinki na końcu, komentarze i pojedyncze cudzysłowy. Użyj parsera JSON5, jeśli to twój docelowy format.
- JSONC (JSON z komentarzami) jest tym, czego używają ustawienia VS Code. Usuń komentarze przed ścisłym parsowaniem.
- YAML to inny format; nie zakładaj, że to „tylko wcięty JSON“.
Wskazówki
- Waliduj przed commitem. Literówka w
package.jsonlub konfiguracji CI psuje cały build, dopóki ktoś tego nie zauważy. - Formatuj ładnie po walidacji, aby diffy w review były czytelne. Jednoliniowy plik JSON jest poprawny, ale fatalny do przeglądania.
- Przy dużych ładunkach waliduj strumieniowo (np.
jqw wierszu poleceń). Parsowanie w przeglądarce ma problemy powyżej kilku MB.
Najczęściej zadawane pytania
To narzędzie sprawdza tylko poprawność składniową, czy to dobrze sformułowany JSON? Dla reguł strukturalnych (wymagane pola, wartości enum, długości ciągów) użyj walidatora JSON Schema. Te dwa kroki się uzupełniają: nie ma sensu uruchamiać walidacji schematu na dokumencie, który w ogóle nie jest poprawnym JSON-em.
Ponieważ standardowy JSON nie ma komentarzy. // i /* */ to rozsądne rozszerzenie (JSONC, JSON5), ale czysty JSON je odrzuca. Usuń komentarze przed wysłaniem do ścisłego odbiorcy albo przyjmij JSON5 w całym swoim stosie.
Niepoprawne w ścisłym JSON. Specyfikacja dopuszcza tylko liczby skończone. Serializuj je jako ciągi ("NaN", "Infinity") albo jako null, w zależności od tego, jak twój odbiorca obsługuje brakujące dane.
Nie, walidacja działa w twojej przeglądarce, więc wklejony ładunek nigdy nie opuszcza strony. Bezpieczne dla wrażliwych plików konfiguracyjnych i odpowiedzi API z danymi uwierzytelniającymi.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Generator EditorConfig
Wygeneruj plik .editorconfig z własnymi regułami stylu i rozmiaru wcięć, końca linii, kodowania i białych znaków, aby uzyskać spójne formatowanie w różnych IDE i edytorach.
Walidator adresów e-mail
Zweryfikuj adres e-mail: sprawdzenie składni RFC 5322, sprawdzenie rekordu MX w czasie rzeczywistym oraz szczegóły dotyczące części lokalnej, domeny i długości. Żadna wiadomość nie jest wysyłana.
Formatowanie HTML
Formatuj HTML lokalnie w przeglądarce, używając wcięć dwóch lub czterech spacji. HTML nie jest wysyłany ani walidowany.
Narzędzie jest dostępne w innych językach
- Validador JSON [ES]
- Validateur JSON [FR]
- JSONバリデーター [JA]
- Validador JSON [PT]
- JSON-validator [SV]
- ตัวตรวจสอบความถูกต้องของ JSON [TH]
- Trình kiểm tra JSON [VI]
- مدقّق JSON [AR]
- JSON-Validator [DE]
- JSON 검사기 [KO]
- JSON Validator [ID]
- JSON-validator [NL]
- Валидатор JSON [RU]
- JSON Doğrulayıcı [TR]
- JSON 校验器 [ZH]
- JSON Validator [EN]
- Validator JSON [IT]