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
Generator konfiguracji webpack
Utwórz plik webpack.config.js dla webpacka 5 do czystego JavaScriptu, Reacta lub Vue: TypeScript, Babel, CSS lub Sass, obrazy, HtmlWebpackPlugin, serwer deweloperski i polecenie npm install.
Generator kolorów analogicznych
Twórz pięciokolorowe palety analogiczne z dowolnego koloru bazowego: klasyczną trójkę, dwie zewnętrzne barwy oraz wartości hex, RGB i HSL.
Generator fikcyjnych numerów telefonu
Generuj do 50 fikcyjnych numerów z oficjalnie zastrzeżonych zakresów w pięciu krajach.
Walidator OpenAPI
Wklej dokument OpenAPI lub Swagger w JSON albo YAML i sprawdź jego podstawową strukturę: pole wersji, obiekt info i paths, z czytelnymi błędami i ostrzeżeniami.
Kod na obraz
Wklej kod, ustaw motyw, kolory, rozmiar czcionki, odstępy, nagłówek i numery wierszy, sprawdź podgląd canvas i pobierz PNG. Renderowanie zwykłego tekstu, bez podświetlania składni.
Kreator diagramów ERD
Utwórz lokalnie diagram encja-relacja z maksymalnie 12 encjami, polami, relacjami i licznościami. Eksportuj Mermaid, SVG, PNG lub JSON.
Narzędzie jest dostępne w innych językach
- JSON Schema-validator [SV]
- Penentu Struktur JSON [ID]
- Validador de JSON Schema [PT]
- JSON-Schema-Validator [DE]
- أداة التحقق من مخطط JSON [AR]
- JSON 스키마 검증기 [KO]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- Trình xác thực JSON Schema [VI]
- JSONスキーマバリデーター [JA]
- Validador de JSON Schema [ES]
- Validateur de schéma JSON [FR]
- JSON Schema-validator [NL]
- JSON 模式验证器 [ZH]
- JSON Schema Validator [EN]
- Validator di JSON Schema [IT]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]