Walidator JSON Schema
Waliduj dokument JSON względem JSON Schema w przeglądarce. Każdy błąd jest wyświetlany ze ścieżką w dokumencie, słowem kluczowym i ścieżką w schemacie.
| # | Ścieżka w dokumencie | Słowo kluczowe | Komunikat | Ścieżka w schemacie |
|---|
Jak sprawdzić JSON ze schematem
- Wklej schemat w pole JSON Schema, a dane w pole Dokument JSON albo wybierz gotowy przypadek z listy Przykład.
- Zostaw Wersja (draft) na Automatycznie ($schema), aby użyć wersji wskazanej w
$schemaschematu, albo wymuś draft 4, 7, 2019-09 lub 2020-12. - Walidacja działa podczas pisania; Waliduj uruchamia ją ponownie. Formatuj oba na nowo wcina oba teksty.
- Odczytaj wynik: zielony wiersz, gdy dokument jest poprawny, a w przeciwnym razie tabelę błędów.
Jak czytać tabelę błędów
Każdy wiersz to jedna niespełniona reguła:
- Ścieżka w dokumencie to JSON Pointer do wartości, która nie przeszła walidacji.
/roles/1to drugi elementroles, a(korzeń)oznacza cały dokument. - Słowo kluczowe to reguła schematu, która nie została spełniona:
type,required,minimum,pattern,format,additionalPropertiesitd. - Komunikat wyjaśnia błąd, np.
0 is less than 1.Komunikaty walidatora są po angielsku. - Ścieżka w schemacie wskazuje słowo kluczowe w schemacie, np.
/properties/id/minimum, dzięki czemu szybko znajdziesz regułę.
Walidacja nie zatrzymuje się na pierwszym problemie: wyświetlane są wszystkie błędy. Gdy właściwość obiektu nie przechodzi walidacji, walidator zgłasza podsumowanie („Property “id” does not match schema”), a po nim dokładną przyczynę. Pokaż tylko najbardziej szczegółowe błędy ukrywa te podsumowania; odznacz tę opcję, aby zobaczyć cały łańcuch. Błędy w anyOf i oneOf są zawsze pokazywane razem ze szczegółowymi błędami każdej gałęzi, bo tylko razem mają sens.
Co jest obsługiwane
- Drafty: 4, 6 (walidowany regułami draftu 7), 7, 2019-09 i 2020-12, w tym
$defs/definitions, lokalne$ref,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesiunevaluatedItems. - Formaty: sprawdzane są
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerirelative-json-pointer. Nieznane formaty są ignorowane, na co pozwala specyfikacja. - Odwołania:
$refmoże wskazywać dowolne miejsce w schemacie, także zadeklarowane w nim$id. Zdalne schematy nigdy nie są pobierane; odwołanie do innego adresu URL jest zgłaszane jako nierozwiązane.
To narzędzie waliduje dokumenty względem twojego schematu. Nie sprawdza, czy sam schemat jest zgodny z metaschematem, ale ostrzega przed nieznanymi nazwami w type, takimi jak "strin" czy "int" – częstą literówką, którą walidatory zwykle po cichu ignorują.
Przykłady
- Profil użytkownika (2020-12):
required, długości ciągów,format: email,enumwewnątrzitems,uniqueItemsiadditionalProperties: false. - Lista produktów z $ref (draft-07): tablica, której elementy odwołują się do
#/definitions/product, zpatterndla kodu SKU i ceną zexclusiveMinimum. - Konfiguracja z if/then (2019-09): certyfikat wymagany tylko w trybie HTTPS,
oneOfmiędzy adresem e-mail a URI oraz limity liczbowe.
Każdy przykład zawiera dokument z celowymi błędami, abyś mógł zobaczyć, jak wyglądają zgłoszenia.
Najczęściej zadawane pytania
Czy moje dane są wysyłane na serwer?
Nie. Schemat i dokument są walidowane w twojej przeglądarce; nic nie trafia na serwer.
Dlaczego $ref w moim schemacie jest „nierozwiązany”?
Walidator zna tylko schemat, który wkleiłeś. Nie może podążyć za $ref do innego pliku lub adresu URL; skopiuj wskazywane definicje do $defs i odwołuj się do #/$defs/….
Którego draftu użyć?
Tego, który obsługuje twój projekt – i zadeklaruj go w $schema. Dla nowych schematów aktualną wersją jest 2020-12; używa jej też OpenAPI 3.1.
Dlaczego integer odrzuca 2.0?
Nie odrzuca: JSON Schema traktuje 2.0 jako liczbę całkowitą, bo jej wartość jest całkowita. Regułę "type": "integer" nie przejdzie natomiast 2.5.
Czy działa offline?
Tak. Gdy strona się wczyta i uruchomisz pierwszą walidację (która wczytuje walidator), połączenie nie jest już potrzebne.
Podobne narzędzia
- Formatowanie i walidacja JSON Darmowe narzędzie do formatowania i walidacji JSON: upiększa, minifikuje i sprawdza JSON w przeglądarce, wskazując wiersz i kolumnę błędu.
- Tester JSONPath Testuj wyrażenia JSONPath na własnym JSON w przeglądarce. Filtry, wycinki, zejście rekurencyjne, ścieżki i JSON Pointery, z gotowymi przykładami.
- Konwerter JSON na YAML Konwertuj JSON na YAML i YAML na JSON w przeglądarce, z obsługą kotwic, kluczy scalających i plików z wieloma dokumentami. Nic nie jest wysyłane.