Strumento di Inferenza Schema

Ogni nuova integrazione comincia allo stesso modo: un'API restituisce un oggetto JSON e ti serve un modello dove conservarlo. Scrivere 20 campi a mano è noioso e soggetto a errori. Questo strumento analizza un oggetto JSON di esempio, sceglie un tipo di colonna per ogni chiave e genera uno schema pronto da incollare nel formato che preferisci: SQL CREATE TABLE, schema Mongoose o definizione di modello Sequelize.

Come inferire uno schema dal JSON

  1. 1

    Incolla un oggetto di esempio

    Inserisci un oggetto JSON, o un array di oggetti (viene letto il primo oggetto dell'array). Usa un record completo con tutti i campi valorizzati affinché ogni colonna riceva un tipo.

  2. 2

    Scegli il formato di output

    SQL CREATE TABLE (stile Postgres / MySQL / SQLite), Mongoose per app Node.js con MongoDB o Sequelize per app relazionali Node.js.

  3. 3

    Dai un nome alla tabella o al modello

    Imposta il nome della tabella nell'output SQL, oppure il nome dello schema o del modello nell'output Mongoose e Sequelize.

  4. 4

    Copia lo schema generato

    Incollalo direttamente in una migrazione o in un file di modello come punto di partenza.

Come vengono inferiti i tipi

L’inferenza è una stima. Lo strumento legge i valori di un oggetto di esempio e sceglie un tipo di colonna per ogni chiave a partire dal valore che vede. Non confronta i record e non deduce quali campi siano facoltativi, quindi forniscigli un oggetto completo e rappresentativo.

Corrispondenza dei tipi

Valore JSON Tipo SQL Tipo Mongoose Tipo Sequelize
42 (intero) INTEGER Number DataTypes.INTEGER
3.14 (decimale) DECIMAL(10,2) Number DataTypes.FLOAT
"ciao" (stringa breve) VARCHAR(255) String DataTypes.STRING
stringa più lunga di 255 caratteri TEXT String DataTypes.STRING
"2026-04-18T10:00:00Z" TIMESTAMP Date DataTypes.DATE
"2026-04-18" DATE Date DataTypes.DATEONLY
true / false BOOLEAN Boolean DataTypes.BOOLEAN
null TEXT String DataTypes.STRING
[1, 2, 3] (array) JSON Object DataTypes.JSON
{ "nested": ... } (oggetto) JSON Object DataTypes.JSON

Cosa aggiunge l’output SQL

Il CREATE TABLE SQL inizia sempre con una chiave primaria auto-incrementante:

id INTEGER PRIMARY KEY AUTOINCREMENT,

Gli output Mongoose e Sequelize non aggiungono un campo id, perché entrambe le librerie lo creano per te.

Valori predefiniti e limiti da tenere a mente

  • Viene letto un solo oggetto. Se incolli un array, viene esaminato solo il primo elemento, quindi sono i suoi campi a definire l’intero schema.
  • Una chiave assente è una colonna assente. I campi non presenti nell’oggetto di esempio semplicemente non compaiono nell’output.
  • Oggetti e array annidati diventano un’unica colonna JSON. Lo strumento non li espande in sotto-tabelle, sotto-schemi o chiavi esterne.
  • Non viene generato alcun vincolo. Le colonne vengono emesse senza NOT NULL, univocità o indici, quindi accettano tutte i valori nulli finché non le restringi.

Consigli per un risultato più pulito

  • Usa un record completamente valorizzato. Un campo che nell’esempio è null viene tipizzato come testo/stringa, che raramente è ciò che vuoi.
  • Rinomina le parole riservate dopo la generazione. Campi come type, order o user andranno racchiusi tra virgolette in SQL.
  • Tratta l’output come un’impalcatura. Regola le lunghezze VARCHAR e la precisione DECIMAL, aggiungi indici, marca le colonne come NOT NULL e scegli chiavi reali prima di andare in produzione.

Domande frequenti

Un oggetto o array annidato viene mappato su un’unica colonna JSON (JSON in SQL e Sequelize, un campo di tipo Object in Mongoose). Lo strumento non espande le strutture annidate in sotto-tabelle o sotto-schemi, quindi le appiattisci o normalizzi tu stesso se necessario.

No. Se incolli un array di oggetti, viene esaminato solo il primo oggetto e sono le sue chiavi a definire lo schema. Assicurati che quel primo record abbia tutti i campi che ti interessano, con un valore reale in ciascuno.

No. Ogni colonna viene emessa con il solo tipo, quindi l’output non ha chiavi esterne, vincoli di univocità, indici o clausole NOT NULL. Aggiungili a mano, perché codificano un’intenzione che lo strumento non può recuperare da un campione.

Scegli SQL CREATE TABLE per una migrazione di database relazionale, Mongoose Schema per un’app Node.js su MongoDB, o Sequelize Model per un’app Node.js su un database relazionale tramite l’ORM Sequelize.

Strumenti correlati

Strumento disponibile in altre lingue