Vai al contenuto

Convertitore di schema da JSON a JSON — Numio

Deduce uno schema JSON (bozza-07) da un campione JSON. Per gli array di oggetti, tutti gli elementi vengono uniti: una chiave mancante o nulla in alcuni elementi viene lasciata fuori da obbligatorio.

Creazione di un primo schema di convalida per una risposta API o un payload webhook dagli esempi acquisiti.

JSON

JSON Schema

Quando usarlo

  • Creazione di un primo schema di convalida per una risposta API o un payload webhook dagli esempi acquisiti.
  • Produzione di uno schema da inserire in Ajv, OpenAPI o uno schema da JSON al passo TypeScript/Zod.

Come si usa

  1. Incolla un campione JSON nell'editor di sinistra o utilizza il pulsante carica file per aprire un file UTF-8. Una serie di diversi record fornisce elenchi richiesti migliori.
  2. Leggi lo schema: ogni chiave in un singolo oggetto è obbligatoria e le chiavi assenti o nulle in alcuni elementi dell'array sono facoltative.
  3. Copia lo schema e aggiungi i vincoli che l'esempio non può mostrare, come formati, enumerazioni, numero intero e minimo.

Campione JSON

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

Schema JSON (bozza-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"
    ]
  }
}

Dettagli e limiti

I numeri hanno sempre "type": "number"; integer, formati (email, date-time), enum e pattern non vengono dedotti. Il titolo è sempre "Generated schema for Root".

Un campo nullo ovunque ottiene uno schema vuoto {}. Un valore null che si trova accanto ad altri valori viene considerato facoltativo e non di tipo null.

Gli array di tipo misto come [1, "x"] diventano una tupla (elenco di elementi con additionalItems: false); un array vuoto fornisce elementi: {}.

Generato nel tuo browser da json_typegen compilato in WebAssembly. JSON non valido (comprese le virgole finali) mostra l'errore di analisi JSON e un singolo valore come 42 viene rifiutato perché non ha struttura.

FAQ

Quale bozza di schema JSON restituisce?

Draft-07, dichiarato come "$schema": "http://json-schema.org/draft-07/schema#". Non è possibile scegliere 2019-09 o 2020-12.

Come vengono rilevati i campi facoltativi?

Solo tra elementi dello stesso array: una chiave mancante in alcuni oggetti, o nulla in alcuni, viene esclusa da obbligatorio. In un unico oggetto ogni chiave è necessaria.

Può convertire un array JSON alla radice?

Sì. La radice riceve "type": "array" e gli elementi vengono uniti in un solo schema items, come nell’esempio.

Specifiche e riferimenti