Jak używać
- Wklej przykładowy JSON albo kliknij Wczytaj przykład.
- Ustaw tytuł głównego schematu.
- Skopiuj lub pobierz schemat i dodaj ograniczenia, takie jak formaty, wzorce i zakresy.
Opis opcji
- Nazwa typu głównego
- Jest używana jako tytuł schematu.
Przykłady
{"id": 1, "email": null} zamienia się w schemat z "id": {"type": "integer"}, "email": {"type": "null"} i obydwoma kluczami w required.
Przykład
Dwa rekordy użytkowników, w których tylko pierwszy ma e-mail, a manager bywa null:
[
{ "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
{ "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]
Przy nazwie typu głównego ustawionej na User wygenerowany schemat wygląda tak:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" } },
"manager": {
"anyOf": [
{ "type": "null" },
{ "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
]
}
},
"required": ["id", "name", "tags", "manager"]
}
}
email nie trafia do required, ponieważ drugi rekord go nie ma, a manager przyjmuje null albo obiekt, bo oba występują w próbce. Im bardziej zróżnicowane dane próbki, tym dokładniejszy schemat — wklej kilka rekordów zamiast jednego.
Typowe zastosowania
Walidacja danych wejściowych API. Wczytaj schemat do walidatora, takiego jak Ajv (JavaScript) lub jsonschema (Python), i odrzucaj żądania, które do niego nie pasują.
Dokumentowanie API. Wklej właściwości do sekcji OpenAPI components.schemas jako punkt wyjścia.
Autouzupełnianie w edytorze. VS Code i IDE JetBrains mogą używać JSON Schema do podpowiadania kluczy i wskazywania błędów w plikach konfiguracyjnych JSON.
Najczęściej zadawane pytania
Które klucze są oznaczone jako wymagane?
Te obecne w każdym przykładowym obiekcie. Gdy elementy tablicy mają różne klucze, te brakujące w części elementów nie są wymagane.
Czy można użyć wyniku z OpenAPI?
OpenAPI 3.1 używa JSON Schema 2020-12, więc schemat pasuje do components/schemas. Dla OpenAPI 3.0 zamień tablice typów, takie jak ["string", "null"], na nullable true.
Czy narzędzie wykrywa formaty e-mail i date-time?
Nie. Wykrywa tylko typy. Format, pattern, minimum i podobne słowa kluczowe dodaj ręcznie.
Czy JSON jest wysyłany?
Nie. Typy są generowane w przeglądarce.
Prywatność
To narzędzie działa w całości w przeglądarce. Twoje pliki i tekst są przetwarzane na Twoim urządzeniu i nigdy nie trafiają na nasze serwery.