Walidator JSON Schema
Wklej schemat i dokument, wybierz draft, a walidator sprawdzi dokument względem każdego słowa kluczowego, którego używa Twój schemat, type, required, enum, oneOf, $ref, if/then/else, własny format, raportując każde naruszenie wskaźnikiem w stylu JSONPath do dokładnej problematycznej lokalizacji.
Jak walidować względem schematu
-
1
Wklej schemat
JSON Schema draft 04, 07 albo 2020-12. Słowo kluczowe `$schema` (jeśli obecne) automatycznie wybiera draft.
-
2
Wklej dokument
JSON, który chcesz zwalidować. Musi najpierw być poprawnym JSON-em: błędy składni są pokazywane przed ewaluacją schematu.
-
3
Waliduj
Każde naruszenie jest raportowane ze wskaźnikiem JSON (`/user/email`) i niespełnionym słowem kluczowym (`format`, `required` itd.).
-
4
Popraw i zwaliduj ponownie
Edytuj którąkolwiek stronę, a status aktualizuje się na żywo.
Obsługiwane słowa kluczowe
Rdzeń: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired.
Kompozycja: allOf, anyOf, oneOf, not.
Aplikatory: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames.
Warunki: if, then, else, dependentSchemas.
Odwołania: $ref, $defs, $id, $anchor.
Formaty (z walidacją po włączeniu): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex.
Wynik błędu
FAIL /user/email format "not-an-email" is not a valid "email"
FAIL /user/age minimum -3 is less than the minimum 0
FAIL /orders/0/total type "42" is not of type "number"
FAIL / required missing required property "shippingAddress"
Każdy błąd zawiera ścieżkę i słowo kluczowe, które zawiodło, co czyni szybkim zlokalizowanie go w edytorze.
Różnice między draftami, które gryzą
| Słowo kluczowe | Draft 04 | Draft 07 | Draft 2020-12 |
|---|---|---|---|
id vs $id |
id |
$id |
$id |
exclusiveMaximum jako bool |
Tak | Liczba | Liczba |
Składnia tablicy items |
items |
items |
prefixItems |
$ref dopuszcza rodzeństwo |
Nie | Nie | Tak |
Ustaw właściwy draft; walidacja schematu draft-04 jako 2020-12 błędnie zinterpretuje id i kilka innych subtelności.
Typowe przepływy pracy
- Testowanie kontraktu API: przed wdrożeniem uruchom wygenerowany/zaktualizowany schemat OpenAPI względem rzeczywistych przykładowych odpowiedzi.
- Utwardzanie konfiguracji: waliduj każdą konfigurację YAML/JSON w CI względem schematu przed scaleniem.
- Wczytywanie danych: wcześnie odrzucaj ładunki, które nie pasują do oczekiwanego kształtu, z jasnym komunikatem błędu.
Częste błędy
- Zapominanie o egzekwowaniu
format. Domyślnie większość walidatorów traktuje nieznane formaty tylko jako adnotację. Włącz walidację strict-format, aby faktycznie odrzucać błędne e-maile i daty. - Nadużywanie
oneOf. Jeśli dwie gałęzieoneOfsię nakładają, dokument zawiedzie (musi pasować dokładnie do jednej). UżyjanyOfalbo wzorców z dyskryminatorem. - Ciasne schematy z
additionalProperties: false. Dodanie nowego opcjonalnego pola staje się zmianą łamiącą. Pomiń je, chyba że naprawdę chcesz obiektu zamkniętego.
Najczęściej zadawane pytania
Tak. Draft 2020-12, 07 i 04 są obsługiwane. Walidator odczytuje słowo kluczowe $schema z Twojego dokumentu, aby wybrać właściwy, albo wraca do selektora w interfejsie.
Standardowe formaty (email, date-time, uuid, ipv4 itd.) są walidowane, gdy strict-format jest włączony. Własne formaty zadeklarowane w Twoim schemacie są traktowane tylko jako adnotacja, chyba że dostarczysz regex przez pattern.
Odwołania wewnętrzne (#/$defs/foo) są rozwiązywane automatycznie. Zewnętrzne odwołania HTTP nie są domyślnie pobierane, ze względów bezpieczeństwa. Najpierw wstaw inline swoje zewnętrzne odwołania albo użyj dedykowanego narzędzia wspierającego rozwiązywanie zdalnych $ref.
Tak. Zarówno schemat, jak i dokument pozostają lokalne. Wklejona treść nigdy nie jest wysyłana, bezpieczne dla wewnętrznych kontraktów API i wrażliwych danych.
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
- Penentu Struktur JSON [ID]
- Trình xác thực JSON Schema [VI]
- Validador de JSON Schema [ES]
- Validateur de schéma JSON [FR]
- JSON 스키마 검증기 [KO]
- JSON Schema-validator [NL]
- JSON Schema-validator [SV]
- JSONスキーマバリデーター [JA]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- أداة التحقق من مخطط JSON [AR]
- JSON-Schema-Validator [DE]
- Validador de JSON Schema [PT]
- Validator di JSON Schema [IT]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]
- JSON 模式验证器 [ZH]
- JSON Schema Validator [EN]