Naar de inhoud

JSON naar JSON schemaconverter — Numio

Leidt een JSON-schema (concept-07) af uit een JSON-voorbeeld. Voor arrays van objecten worden alle elementen samengevoegd: een sleutel die in sommige elementen ontbreekt of nul is, is niet vereist.

Een eerste validatieschema maken voor een API-antwoord of webhook-payload op basis van vastgelegde voorbeelden.

JSON

JSON Schema

Wanneer gebruik je dit?

  • Een eerste validatieschema maken voor een API-antwoord of webhook-payload op basis van vastgelegde voorbeelden.
  • Een schema produceren om in te voeren in de Ajv-, OpenAPI- of een JSON-schema voor de TypeScript/Zod-stap.

Hoe werkt het

  1. Plak een JSON-voorbeeld in de linkereditor of gebruik de knop Bestand laden om een UTF-8-bestand te openen. Een array van verschillende records levert betere vereiste lijsten op.
  2. Lees het schema: elke sleutel in een enkel object is vereist, en sleutels die in sommige array-elementen ontbreken of null zijn, zijn optioneel.
  3. Kopieer het schema en voeg beperkingen toe die het voorbeeld niet kan weergeven, zoals formaten, enums, geheel getal en minimum.

JSON-voorbeeld

[
  { "id": 1, "name": "Ada", "email": null },
  { "id": 2, "name": "Lin", "email": "lin@example.com" }
]

JSON-schema (concept-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"
    ]
  }
}

Details en beperkingen

Getallen zijn altijd "type": "nummer"; geheel getal, formaten (e-mail, datum-tijd), opsommingen en patronen worden niet afgeleid. De titel is altijd "Gegenereerd schema voor root".

Een veld dat overal nul is, krijgt een leeg schema {}. Een null die naast andere waarden staat, wordt behandeld als optioneel, niet als type null.

Arrays van gemengd type zoals [1, "x"] worden een tupel (itemlijst met additionalItems: false); een lege array geeft items: {}.

Gegenereerd in uw browser door json_typegen gecompileerd naar WebAssembly. Ongeldige JSON (inclusief volgkomma's) toont de JSON-parseerfout en een enkele waarde, zoals 42, wordt afgewezen omdat deze geen structuur heeft.

FAQ

Welk JSON-schemaconcept wordt uitgevoerd?

Draft-07, gedeclareerd als "$schema": "http://json-schema.org/draft-07/schema#". Er is geen optie om 2019-09 of 2020-12 te kiezen.

Hoe worden optionele velden gedetecteerd?

Alleen voor elementen van dezelfde array: een sleutel die bij sommige objecten ontbreekt, of bij andere nul is, wordt buiten beschouwing gelaten. In één object is elke sleutel vereist.

Kan het een JSON-array in de root converteren?

Ja. De root krijgt "type": "array" en de elementen worden samengevoegd tot één itemsschema, zoals in het voorbeeld.

Specificaties en referenties