Konwerter JSON na JSON Schema — Numio
Wnioskuje schemat JSON (wersja robocza 07) z próbki JSON. W przypadku tablic obiektów wszystkie elementy są łączone: brakujący klucz lub wartość null w niektórych elementach jest pomijana.
Tworzenie pierwszego schematu walidacji dla odpowiedzi API lub ładunku webhooka na podstawie przechwyconych przykładów.
Kiedy go używać
- Tworzenie pierwszego schematu walidacji dla odpowiedzi API lub ładunku webhooka na podstawie przechwyconych przykładów.
- Tworzenie schematu do wprowadzenia do Ajv, OpenAPI lub JSON Schemat do kroku TypeScript/Zod.
Jak używać
- Wklej próbkę JSON do lewego edytora lub użyj przycisku ładowania pliku, aby otworzyć plik UTF-8. Tablica kilku rekordów daje lepsze wymagane listy.
- Przeczytaj schemat: wymagany jest każdy klucz w pojedynczym obiekcie, a klucze nieobecne lub o wartości null w niektórych elementach tablicy są opcjonalne.
- Skopiuj schemat i dodaj ograniczenia, których próbka nie może pokazać, takie jak formaty, wyliczenia, liczby całkowite i minimalne.
Próbka JSON
[
{ "id": 1, "name": "Ada", "email": null },
{ "id": 2, "name": "Lin", "email": "lin@example.com" }
]Schemat JSON (wersja robocza 07)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Generated schema for Root",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
}
},
"required": [
"id",
"name"
]
}
}Szczegóły i ograniczenia
Liczby zawsze otrzymują "type": "number"; integer, formaty (email, date-time), enum i pattern nie są wywnioskowywane. Tytuł zawsze ma wartość "Generated schema for Root".
Pole, które wszędzie ma wartość null, otrzymuje pusty schemat {}. Wartość null znajdująca się obok innych wartości jest traktowana jako opcjonalna, a nie jako typ null.
Tablice typu mieszanego, takie jak [1, "x"] stają się krotką (lista elementów z additionalItems: false); pusta tablica daje elementy: {}.
Wygenerowane w przeglądarce przez json_typegen, skompilowane do WebAssembly. Nieprawidłowy JSON (łącznie z końcowymi przecinkami) pokazuje błąd analizy JSON, a pojedyncza wartość, taka jak 42, jest odrzucana, ponieważ nie ma struktury.
FAQ
Którą wersję roboczą schematu JSON generuje?
Wersja robocza 07, zadeklarowana jako „$schema”: „http://json-schema.org/draft-07/schema#". Nie ma możliwości wyboru 2019-09 lub 2020-12.
W jaki sposób wykrywane są pola opcjonalne?
Tylko pomiędzy elementami tej samej tablicy: brakujący klucz w niektórych obiektach lub null w niektórych jest pomijany. W jednym obiekcie wymagany jest każdy klucz.
Czy może przekonwertować tablicę JSON w katalogu głównym?
Tak. Korzeń otrzymuje „type”: „array”, a elementy są łączone w jeden schemat elementów, jak w przykładzie.