Walidator JSON Schema
Powiązane Rekomendacje
Funkcje
- Walidacja standardu Draft-07: w pełni przestrzega specyfikacji JSON Schema Draft-07, obsługując kompleksową walidację typów, wymaganych pól, właściwości, regex, formatów i enum
- Zaawansowana logika kombinacji: obsługuje słowa kombinacji allOf, anyOf, oneOf, not — łatwo radząc sobie ze złożonymi zagnieżdżonymi strukturami i scenariuszami walidacji wieloograniczeniowej
- Precyzyjna lokalizacja błędów: dostarcza szczegółowe ścieżki błędów i semantyczne komunikaty, pomagając developerom szybko zlokalizować konflikty kontraktów API i anomalie struktur danych
- Testowanie kontraktów API: idealne do debugowania interfejsów frontend-backend i automatycznego testowania kontraktów, zapewniając że dane odpowiedzi ściśle pasują do schema zdefiniowanego w dokumentacji API
- Lokalne szybkie przetwarzanie: czyste przetwarzanie po stronie przeglądarki, bez potrzeby przesyłania na serwer, zapewniając prywatność wrażliwych danych biznesowych z ultraszybkim przetwarzaniem
Często Zadawane Pytania
Jak walidować dane odpowiedzi API za pomocą JSON Schema?
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.
Jakie standardy JSON Schema i reguły walidacji są obsługiwane?
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).
Jak szybko zlokalizować błędy gdy walidacja się nie powiedzie?
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.
Jak używać JSON Schema do automatycznego zarządzania danymi?
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.
Czy online walidacja JSON Schema narazi moje prywatne dane?
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.
Ściąga Słów Kluczowych JSON Schema
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. |
Porównanie Wersji JSON Schema
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 |
- JSON Compress
- Konwerter CSV na JSON
- JSON na CSV
- JSON Diff
- JSON Escape / Unescape
- Spłaszczanie JSON
- JSON Formatter
- Generator JSON
- Zapytanie JSONPath
- Scal JSON
- Naprawa JSON
- Walidator JSON Schema
- Sortowanie JSON
- JSON Stringify
- JSON do HTML
- JSON do Javy
- JSON na Markdown
- JSON do SQL
- JSON do TOML
- JSON do TypeScript
- XML na JSON
- Konwertuj JSON do XML
- YAML na JSON
- JSON → YAML
- JSON na Go
- JSON na Rust
- JSON to Swift
- JSON na C#
- JSON na C++
- JSON na PHP
- JSON na Python