Generatore JSON Schema
Genera una bozza JSON Schema da un campione JSON nel browser - nessun account, nessun upload, nessuna CLI.
Informazioni su Generatore JSON Schema
Genera una bozza JSON Schema da un campione JSON nel browser - nessun account, nessun upload, nessuna CLI. Incolla una risposta API o, meglio, un array di record. Gli oggetti annidati diventano schema annidati, gli array sono tipizzati da ogni elemento (non solo il primo), e pattern di chiavi mancanti identici diventano opzionali (omessi da required). JSON null diventa tipo nullable invece di collassare in opzionale. I format stringa sono inferiti quando i valori assomigliano a email, uri, uuid, date o date-time. Scegli Draft-07 o 2020-12, poi copia o scarica lo schema. Abbinalo al Convertitore JSON vers interface TypeScript per interfacce dallo stesso campione, o al Minificatore e formattatore JSON se il payload e arrivato minificato.
Come usare Generatore JSON Schema
- Incolla JSON (un array di record inferisce chiavi opzionali piu accuratamente di un singolo oggetto). Carica un esempio se vuoi vedere prima opzionale vs nullable.
- Imposta titolo schema e scegli Draft-07 (default) o 2020-12. Scegli se gli oggetti rifiutano o permettono additional properties.
- Leggi il report inferenza: conteggio proprieta, chiavi required, chiavi opzionali e hint format. I warning segnalano array vuoti, oggetti vuoti, campi tutti null e unioni miste.
- Copia il JSON Schema o scarica un file .schema.json. Usalo in AJV, Zod (via converter), bozze OpenAPI o validator CI.
- Nulla viene inviato a un server. JSON non valido riporta riga e colonna.
Esempi di Generatore JSON Schema
Chiave opzionale da array di record
[{"sku":"A1","qty":2},{"sku":"B7","qty":1,"gift":true}] diventa uno schema array i cui item richiedono sku e qty, mentre gift e opzionale (non in required).
Nullable vs opzionale
Due utenti dove email manca su una riga e note e null sull'altra producono email come string opzionale e note come type ["string","null"]. Chiavi mancanti e JSON null restano distinti.
Hint format stringa
Valori che assomigliano a email, URL https, UUID, date ISO o date-time ottengono format: email, uri, uuid, date o date-time cosi i validator possono applicarli.
Contenitori vuoti
{"items":[],"meta":{}} tipizza items come array con items schema vuoto e meta come oggetto senza proprieta. I warning ti dicono di incollare un campione piu ricco.
Draft-07 vs 2020-12
Entrambi i draft condividono la stessa forma inferita. Draft-07 usa l'URI $schema classico che la maggior parte dei tool si aspetta ancora. Passa a 2020-12 quando il tuo stack documenta quel dialetto.
Casi d'uso comuni
- Bozzare JSON Schema prima che esista la spec OpenAPI / AsyncAPI
- Validare payload webhook (Stripe, GitHub, Slack) in CI con AJV
- Trasformare un file fixture in contratto per contract test
- Avviare schema per file config e payload feature flag
- Abbinare interfacce TypeScript dallo stesso JSON di esempio
Domande frequenti su Generatore JSON Schema
- Come genero JSON Schema da JSON di esempio?
- Incolla un campione JSON, imposta un titolo, scegli un draft e copia lo schema generato. La generazione gira nel browser. Oggetti annidati e array sono percorsi completamente, e chiavi mancanti tra item array sono omesse da required.
- Differenza tra opzionale e nullable?
- Opzionale significa che la chiave era assente su alcuni item array, quindi non e in required. Nullable significa che la chiave era presente e il valore era JSON null, quindi il tipo include null (ad esempio type: ["string","null"]). Questo generatore non li unisce a meno che il campione mostrasse entrambi.
- Quale draft JSON Schema usare?
- Draft-07 resta il piu supportato da validator e editor. Usa 2020-12 quando il tooling si aspetta esplicitamente quell'URI $schema. Le proprieta inferite sono le stesse in entrambi i casi.
- Perche items o properties sono vuoti?
- Array vuoti non hanno elementi da ispezionare, quindi items e {}. Oggetti vuoti non hanno chiavi, quindi properties e vuoto. Incolla un esempio popolato per tipi concreti.
- I format stringa sono sempre corretti?
- I format sono euristiche dai valori campione (email, uri, uuid, date, date-time). Rivedili prima di bloccare un contratto produzione - una stringa che sembra email nel campione puo non esserlo sempre.
- Il mio JSON viene caricato?
- No. La generazione schema gira solo in questa scheda. Il campione non lascia il browser.
- In cosa differisce dal convertitore JSON in TypeScript?
- Entrambi percorrono lo stesso tipo di campione. Questa pagina emette JSON Schema per validator e bozze OpenAPI. Il convertitore TypeScript emette interfacce o type alias per codice applicativo. Usa entrambi dallo stesso payload quando ti servono contratto e client tipizzati.
- additionalProperties: false rifiuta chiavi sconosciute?
- Si quando lasci Reject extras attivo. Utile per contratti API rigidi. Passa a Allow extras se i client possono inviare campi non visti ancora nel campione.
Strumenti correlati
Convertitore JSON in Interfacce TypeScript
Convertitore JSON in interfacce TypeScript gratuito. Incolla un campione JSON, genera interfacce annidate o type alias e tieni separate chiavi opzionali da JSON null. Nulla viene caricato.
Minificatore e formattatore JSON
Minificatore e formattatore JSON online gratuito. Minifica JSON per payload piu piccoli o formatta (pretty-print) con indentazione 2 spazi. Valida mentre lavori - nessun upload.
Tester JSONPath
Prova JSONPath online nel browser. Estrai un campo da JSON, prova un filtro di esempio e copia percorsi normalizzati - nulla viene caricato.
Confronto diff JSON
Diff JSON strutturale gratuito nel browser. Confronta due documenti JSON per chiavi e valori - non per ordine righe. Nulla viene caricato.