Wklej definicję JSON Schema po lewej stronie, a dane odpowiedzi API po prawej. Narzędzie automatycznie porówna obie struktury, walidując typy danych, wymagane pola, wzorce regex i więcej. Niezbędny krok do testowania kontraktów API i zapewnienia spójności struktur danych frontend-backend.
Narzędzie w pełni przestrzega standardu JSON Schema Draft-07. Obsługuje sprawdzanie typów (type), wymagane pola (required), definicje właściwości (properties), dopasowanie wzorców regex (pattern), walidację formatu (format), wartości enum oraz zaawansowaną walidację logiki kombinacji (allOf, anyOf, oneOf, not).
Gdy dane JSON nie pasują do schema, narzędzie generuje szczegółowy raport błędów. Precyzyjnie wskazuje ścieżkę JSON z błędem, konkretny typ błędu (np. niezgodność typu lub brakujące pole) oraz odpowiadającą regułę schema — znacznie poprawiając efektywność debugowania.
Przed czyszczeniem danych ETL lub ingestią danych użyj tego narzędzia do weryfikacji czy dane są zgodne z predefiniowanymi specyfikacjami schema. Skutecznie przechwytuje brudne dane i anomalie, zapewniając jakość danych wchodzących do baz danych lub systemów downstream.
Nie. Całe przetwarzanie odbywa się lokalnie w Twojej przeglądarce. Niezależnie czy to struktury danych API przedsiębiorstwa czy osobiste dane biznesowe, nic nigdy nie jest przesyłane na żaden serwer, zapewniając pełną ochronę prywatności danych.
Poniższa tabela zawiera najczęściej używane słowa kluczowe walidacji w specyfikacji JSON Schema, pogrupowane według kategorii dla szybkiego odniesienia.
| Słowo kluczowe | Opis |
|---|---|
| Podstawowe Typy | |
type | Określ typ danych: string, number, integer, boolean, array, object, null. Obsługuje pojedynczy typ lub tablicę typów. |
| Walidacja Obiektów | |
properties | Definiuj podschematy dla właściwości obiektu. |
required | Tablica stringów określająca, które właściwości są wymagane. |
additionalProperties | Kontroluj, czy dodatkowe właściwości niezdefiniowane w properties są dozwolone; może być false lub schematem. |
propertyNames | Schemat, któremu muszą odpowiadać nazwy właściwości (często używa pattern regex). |
minProperties | Minimalna liczba właściwości, które obiekt musi zawierać. |
maxProperties | Maksymalna liczba właściwości, które obiekt może zawierać. |
| Enumy & Stałe | |
enum | Tablica dozwolonych wartości; dane muszą być dokładnie jedną wartością z tablicy. |
const | Wartość stała; dane muszą być ściśle równe tej wartości. |
| Ograniczenia Numeryczne | |
minimum | Minimalna wartość liczbowa (włącznie). |
maximum | Maksymalna wartość liczbowa (włącznie). |
exclusiveMinimum | Wartość musi być ściśle większa niż (wyłącznie). |
exclusiveMaximum | Wartość musi być ściśle mniejsza niż (wyłącznie). |
multipleOf | Wartość musi być wielokrotnością podanej liczby. |
| Ograniczenia Stringów | |
minLength | Minimalna długość stringa. |
maxLength | Maksymalna długość stringa. |
pattern | Wyrażenie regularne; string musi pasować do tego wzorca. |
format | Semantyczna walidacja formatu: email, uri, date-time, uuid, ipv4, ipv6, hostname, itp. |
| Ograniczenia Tablic | |
items | Schemat dla elementów tablicy (pojedynczy schemat dotyczy wszystkich elementów). |
minItems | Minimalna liczba elementów tablicy. |
maxItems | Maksymalna liczba elementów tablicy. |
uniqueItems | Czy elementy tablicy muszą być unikalne. |
contains | Co najmniej jeden element tablicy musi pasować do tego schematu. |
| Logika Kombinacyjna | |
allOf | Dane muszą pasować do wszystkich podschematów (logiczne AND). |
anyOf | Dane muszą pasować do co najmniej jednego podschematu (logiczne OR). |
oneOf | Dane muszą pasować dokładnie do jednego podschematu (XOR). |
not | Dane NIE MOGĄ pasować do tego schematu (logiczne NOT). |
| Walidacja Warunkowa | |
if | Schemat warunkowy; jeśli dane pasują do if, muszą spełniać then; w przeciwnym razie muszą spełniać else. |
then | Schemat do spełnienia, gdy warunek if jest prawdziwy. |
else | Schemat do spełnienia, gdy warunek if nie jest prawdziwy. |
| Referencje & Ponowne Użycie | |
$ref | Odwołuje się do innych definicji schematu; obsługuje odwołania lokalne (#/$defs/xxx) i zdalne. |
$defs | Definiuj wielokrotnie używalne podschematy (Draft 2019-09+; starsze wersje używają definitions). |
definitions | Słowo kluczowe dla wielokrotnie używalnych podschematów w Draft 4-7. |
| Metadane | |
title | Tytuł schematu (adnotacja, nie podlega walidacji). |
description | Opis schematu (adnotacja, nie podlega walidacji). |
default | Wartość domyślna (adnotacja, nie podlega walidacji). |
examples | Tablica przykładowych wartości (adnotacja, nie podlega walidacji). |
$schema | Określa używaną wersję specyfikacji JSON Schema. |
| Zależności | |
dependentRequired | Zależność właściwości: gdy właściwość istnieje, inne właściwości również muszą istnieć (Draft 2019-09+). |
dependencies | Słowo kluczowe zależności w Draft 4-7 obejmujące zarówno zależności właściwości, jak i schematów. |
JSON Schema ewoluowało przez wiele wersji Draft. Draft 7 jest obecnie najszerzej używaną wersją; Draft 2020-12 to najnowsza stabilna wersja.
| Funkcja | Draft 4 | Draft 6 | Draft 7 | 2019-09 | 2020-12 |
|---|---|---|---|---|---|
| walidacja typu | ✓ | ✓ | ✓ | ✓ | ✓ |
| wymagane pola | ✓ | ✓ | ✓ | ✓ | ✓ |
| enum/const | ✓ enum | ✓ | ✓ | ✓ | ✓ |
| minimum/maximum | ✓ | ✓ | ✓ | ✓ | ✓ |
| exclusiveMinimum/Maximum | logiczny | liczba | liczba | liczba | liczba |
| multipleOf | ✓ | ✓ | ✓ | ✓ | ✓ |
| minLength/maxLength | ✓ | ✓ | ✓ | ✓ | ✓ |
| wzorzec regex | ✓ | ✓ | ✓ | ✓ | ✓ |
| walidacja formatu | ✓ | ✓ | ✓ | domyślnie adnotacja | domyślnie adnotacja |
| tablica items | ✓ | ✓ | ✓ | ✓ | ✓ |
| contains | ✗ | ✓ | ✓ | ✓ | ✓ |
| minItems/maxItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| uniqueItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| additionalProperties | ✓ | ✓ | ✓ | ✓ | ✓ |
| propertyNames | ✗ | ✓ | ✓ | ✓ | ✓ |
| allOf/anyOf/oneOf/not | ✓ | ✓ | ✓ | ✓ | ✓ |
| if/then/else | ✗ | ✗ | ✓ | ✓ | ✓ |
| referencje $ref | ✓ | ✓ | ✓ | ✓ | ✓ |
| ponowne użycie $defs | definitions | definitions | definitions | $defs | $defs |
| dependentRequired | ✗ | ✗ | ✗ | ✓ | ✓ |
| krotki prefixItems | forma tablicowa | forma tablicowa | forma tablicowa | forma tablicowa | prefixItems |
| unevaluatedProperties | ✗ | ✗ | ✗ | ✓ | ✓ |
| $dynamicRef/$anchor | ✗ | ✗ | ✗ | ✓ $recursiveRef | ✓ dynamicRef |