>_toolkitbox

~/tools / JSON Schema Validator

JSON Schema Validator — Sprawdź JSON względem JSON Schema

Sprawdź dane JSON względem schematu JSON Schema i zobacz każdy problem wraz ze ścieżką i regułą, która zawiodła. Obsługuje główne słowa kluczowe Draft 2020-12. Przydatne do kontroli ustrukturyzowanych odpowiedzi modeli AI. Nic nie opuszcza twojej przeglądarki.

Dla obsługiwanych słów kluczowych stosuje JSON Schema Draft 2020-12. Czyta $ref tylko wewnątrz tego samego schematu.

Wszystko działa w twojej przeglądarce. Schemat i dane nie są przesyłane.

Schemat JSON Schema opisuje, jak wygląda poprawny JSON: jego typy, wymagane właściwości, dozwolone wartości i zakresy. To narzędzie sprawdza fragment JSON względem schematu i wypisuje każdy problem razem z jego miejscem w danych oraz słowem kluczowym schematu, które zawiodło. API modeli AI potrafią ograniczyć odpowiedź modelu do schematu, ale odpowiedź nadal może mieć błędne wartości, może być odmową albo może zostać ucięta, dlatego warto sprawdzić ją samodzielnie. Słowa kluczowe, których narzędzie nie sprawdza, takie jak format, są wymieniane, gdy twój schemat ich używa, więc pozytywny wynik nigdy nie jest po cichu słabszy, niż wygląda.

Zastosowania

  • Sprawdzenie, czy ustrukturyzowana odpowiedź modelu AI pasuje do schematu, który mu podano
  • Przetestowanie schematu na kilku poprawnych i niepoprawnych próbkach, zanim trafi do API
  • Znalezienie właściwości w dużym dokumencie JSON, która łamie reguły

Jak używać

  1. Wklej schemat po lewej, a dane JSON po prawej albo wczytaj przykład.
  2. Odczytaj wynik: pozytywny albo lista problemów ze ścieżką w danych i regułą, która zawiodła.
  3. Jeśli pojawi się informacja o niesprawdzonych słowach kluczowych, przeczytaj ją.

Co schemat sprawdza, a czego nie

  • properties sprawdza tylko właściwości, które są obecne. Właściwość jest obowiązkowa tylko wtedy, gdy jej nazwa znajduje się w required, więc właściwości niewymienionej może brakować.
  • additionalProperties dotyczy nazw, które nie pasują ani do properties, ani do patternProperties. Jeśli go pominięto, dodatkowe właściwości są dozwolone.
  • integer pasuje do każdej liczby z zerową częścią ułamkową.
  • pattern to wyrażenie regularne ECMA-262 i nie jest zakotwiczone: wzorzec b pasuje do ciągu abc. Dodaj ^ i $, gdy ma pasować cały ciąg.
  • minLength i maxLength liczą znaki tak, jak definiuje RFC 8259, więc emoji liczy się jako jeden.
  • format domyślnie jest adnotacją, a jego sprawdzanie jest opcjonalne. To narzędzie go nie sprawdza i informuje o tym, gdy schemat go używa.
  • Nieznane słowa kluczowe są traktowane jako adnotacje, więc literówka, taka jak requierd, jest ignorowana i nie powoduje niepowodzenia schematu.

Tablice: 2020-12 i wcześniejsze wersje robocze

Wersja roboczaSchematy dla pierwszych elementówSchemat dla reszty
2020-12prefixItemsitems
draft-07 i wcześniejszeitems jako tablicaadditionalItems

To narzędzie czyta obie formy. W 2020-12 items: false zastępuje additionalItems: false.

Co akceptują funkcje ustrukturyzowanych odpowiedzi AI

Każdy dostawca akceptuje tylko podzbiór JSON Schema, a trzej dokumentują to inaczej.

DostawcaCo mówi dokumentacja
OpenAIKorzeń musi być obiektem. Każda właściwość musi być wymieniona w required (wartość opcjonalną zapisuje się jako typ, który dopuszcza też null), a każdy obiekt wymaga additionalProperties: false. allOf, not, dependentRequired, dependentSchemas i if/then/else nie są obsługiwane.
AnthropicadditionalProperties musi mieć wartość false. Schematy rekurencyjne, minimum, maximum i multipleOf, minLength i maxLength oraz minItems tablicy inne niż 0 lub 1 nie są obsługiwane. Nieobsługiwana funkcja zwraca błąd 400.
Google GeminiObsługiwany jest tylko podzbiór JSON Schema. minLength, maxLength, minProperties, maxProperties, uniqueItems, contains, minContains i maxContains są usuwane i ignorowane zamiast zgłaszania błędu.

Schemat, który przechodzi ten walidator, może nadal zostać odrzucony przez funkcję dostawcy albo egzekwowany tylko częściowo. Sprawdź dokumentację dostawcy i samodzielnie waliduj odpowiedź.

Waliduj odpowiedź samodzielnie

  • Google mówi, że wynik może pasować do schematu i mimo to być błędny znaczeniowo, i każe walidować wartości w swojej aplikacji.
  • Anthropic zauważa, że wartość enum lub const może wrócić różniąca się tylko wielkością liter, bez błędu.
  • OpenAI mówi, że odmowa nie musi być zgodna ze schematem oraz że odpowiedź ucięta przez limit maksymalnej liczby tokenów jest niekompletna.
  • Anthropic mówi, że odpowiedź ucięta przez max_tokens może nie pasować do schematu. Zanim sparsujesz, sprawdź, dlaczego model się zatrzymał.

Źródła (sprawdzono 2026-10-23): JSON Schema 2020-12: Core / JSON Schema 2020-12: Validation / JSON Schema 2020-12: Release notes / OpenAI: Structured Outputs / Anthropic: Structured outputs / Google AI for Developers: Structured output

FAQ

Którą wersję JSON Schema obsługuje?

Draft 2020-12. Czyta też starsze formy tablic z draft-07, w których items może być tablicą, a additionalItems obejmuje resztę. Przyjmuje $ref do definicji wewnątrz tego samego schematu ($defs lub definitions) i nie pobiera schematów zewnętrznych.

Jakie słowa kluczowe sprawdza?

type, enum, const, ograniczenia liczb i ciągów, pattern, słowa kluczowe tablic (items, prefixItems, minItems, maxItems, uniqueItems, contains), słowa kluczowe obiektów (properties, patternProperties, additionalProperties, required, propertyNames, dependentRequired i inne), allOf, anyOf, oneOf, not oraz if/then/else.

Czego nie sprawdza?

Nie sprawdza format, unevaluatedProperties, unevaluatedItems, $dynamicRef ani contentMediaType. JSON Schema domyślnie traktuje format jako adnotację, a jego sprawdzanie jest opcjonalne. Gdy twój schemat używa któregoś z nich, narzędzie o tym informuje.

Dlaczego literówka w słowie kluczowym nie powoduje błędu?

JSON Schema traktuje nieznane słowa kluczowe jako adnotacje, więc literówka, taka jak requierd, jest ignorowana, a schemat nadal przechodzi. Narzędzie zgłasza błędną wartość znanego słowa kluczowego, na przykład nieistniejący type, ale nie może wiedzieć, że chodziło ci o inne słowo.

Czy schemat, który tu przechodzi, zadziała w ustrukturyzowanych odpowiedziach dostawcy AI?

Niekoniecznie. Każdy dostawca obsługuje tylko podzbiór JSON Schema. OpenAI wymaga, aby każda właściwość była w required, a additionalProperties miało wartość false, Anthropic nie obsługuje ograniczeń długości liczb ani ciągów, a Gemini ignoruje kilka słów kluczowych. Zobacz uwagi o dostawcach pod narzędziem.

Czy moje dane są wysyłane na serwer?

Nie. Zarówno schemat, jak i dane są sprawdzane w twojej przeglądarce.

Powiązane