Przejdź do treści
ToolMug

Generator JSON Schema

Wklej przykładowy JSON i otrzymaj schemat opisujący typy, zagnieżdżone obiekty, elementy tablic oraz wymagane klucze. Użyj go do walidacji, formularzy lub dokumentacji API.

Działa w przeglądarce — nic, co wpiszesz, nie jest wysyłane

Jak używać

  1. Wklej przykładowy JSON albo kliknij Wczytaj przykład.
  2. Ustaw tytuł głównego schematu.
  3. 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.

Podobne narzędzia