Abbozzare un contratto dei dati
Parti da una risposta API o file di scambio e confronta la struttura con la documentazione applicativa. Aggiungi vincoli che il campione non dimostra.
Analizza un documento JSON e deduce automaticamente tipi, proprietà, array e campi obbligatori.
Crea una prima versione di JSON Schema da un documento JSON rappresentativo. Il generatore identifica tipi, oggetti annidati, liste e proprietà osservate per descrivere una struttura riutilizzabile con draft 2020-12. L’output è una proposta da rivedere, non la scoperta automatica di ogni regola API. Nessun documento viene caricato su un servizio: il browser analizza il campione e mostra uno schema JSON da leggere, copiare o esportare.
Le stringhe diventano string, i booleani boolean e null null. Gli interi osservati sono distinti dagli altri numeri. Gli oggetti producono properties; gli array inferiscono items da tutti gli elementi forniti, non solo dal primo. Varianti di tipo possono essere rappresentate con anyOf.
Si combinano le proprietà degli oggetti nello stesso array. Una chiave mancante in alcune voci non entra in required; una chiave sempre presente viene inclusa. La regola riflette soltanto il campione. Una risposta che contiene un campo facoltativo nel contratto reale non permette di indovinarne la possibile assenza.
Gli oggetti usano additionalProperties: false, rifiutando chiavi mai osservate anche quando l’applicazione le accetterebbe. Rivedi questa scelta prima di validare risposte future. Un array vuoto non informa sui futuri elementi: lo schema lascia aperta la loro forma senza inventare un tipo.
L’inferenza non deduce formati email, espressioni regolari, limiti numerici o elenchi esaustivi di valori. Una data rimane stringa. Osservare 1 non dimostra minimum: 1 o const: 1. I numeri usano la rappresentazione del browser; conserva identificatori grandi come stringhe quando il contratto lo prevede.
Incolla JSON valido con struttura completa. Preferisci dati anonimizzati con forme rilevanti a grandi quantità di valori ripetuti.
Rivedi tipi inferiti, required e chiusura degli oggetti. Un valore null è diverso da una proprietà assente.
Aggiungi formati o limiti giustificati e prova dati validi e non validi prima dell’integrazione. Il download contiene uno schema JSON, non un modulo TypeScript.
Parti da una risposta API o file di scambio e confronta la struttura con la documentazione applicativa. Aggiungi vincoli che il campione non dimostra.
Includi campi omessi, presenti e null per distinguere obbligatorietà e tipi. Campioni diversi offrono una base più rappresentativa.
Usa lo schema con un validatore che supporti draft e parole chiave. La generazione non installa controlli automatici nell’applicazione.
id diventa integer e active boolean. Entrambi sono obbligatori perché presenti nell’oggetto; additionalProperties rifiuta chiavi ulteriori.
Input
{"id":1,"active":true}Risultato
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"active": {
"type": "boolean"
}
},
"required": [
"id",
"active"
],
"additionalProperties": false
}id compare in entrambi gli oggetti e resta obbligatorio. name compare solo nel secondo: è una proprietà nota ma facoltativa.
Input
[{"id":1},{"id":2,"name":"Ada"}]Risultato
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}
}No. Tutti gli elementi forniti partecipano all’inferenza. Le proprietà si combinano e le assenze influenzano required. Rimane un’analisi dei campioni, non una previsione di dati futuri sconosciuti.
Non è mai mancato nei campioni pertinenti. Rimuovilo da required secondo il contratto reale oppure aggiungi un oggetto rappresentativo privo della chiave.
Gli oggetti sono chiusi con additionalProperties: false. Modifica la regola se ammetti nuove proprietà e decidi esplicitamente prima di validare dati in evoluzione.
No. Descrive forme osservate e richiede revisione applicativa. Aggiungi vincoli pertinenti e usa un validatore compatibile con draft e parole chiave effettivamente utilizzati.
Strumenti correlati
Strumenti simili o complementari a questo.
Valida un documento JSON con uno schema e individua con precisione ogni errore.
Genera interfacce TypeScript, tipi, schemi Zod o JSON Schema da un esempio JSON.
Formatta, minifica e valida un documento JSON per renderlo più leggibile o compatto.