Vai al contenuto
100% locale

JSON a classe Java

Converti un campione JSON in classi Java, con tipi annidati ed elenchi generici dedotti automaticamente.

Ingresso
Uscita

JSON a classe Java

Incolla un campione JSON e questo strumento genera le classi Java necessarie per rappresentarlo, deducendo i tipi di campo, i tipi di oggetti annidati e i tipi di elementi di elenchi generici direttamente dai valori che fornisci. È progettato per sviluppatori backend che ricevono una risposta API o un file di configurazione e hanno bisogno di un modello tipizzato per deserializzarlo, senza scrivere manualmente ogni campo.

Scegli come vengono annotati i campi: nessuna annotazione, @JsonProperty di Jackson, oppure @SerializedName di Gson, ognuna portando la chiave JSON originale in modo che la serializzazione corrisponda sempre dopo che un campo viene rinominato in camelCase. Disattiva getter e setter per una classe semplice con campi pubblici, oppure sostituiscili con @Data di Lombok o un record Java, dove i componenti prendono il posto dei campi e degli accessor. I tipi wrapper (Integer, Boolean, Double) possono essere forzati ovunque al posto dei primitivi; lo strumento usa sempre un wrapper dove un valore è veramente opzionale, poiché un primitivo non può mai contenere null. Una dichiarazione di package viene aggiunta quando fornita, e gli oggetti annidati si rendono come classi annidate statiche in un file o come classi di livello superiore separate.

Quando la stessa forma appare più di una volta — oggetti ripetuti in un array, o due campi fratelli con struttura identica — lo strumento riusa una sola classe generata invece di duplicarla. I campi osservati con forme diverse all'interno di un array vengono uniti in una classe, con campi assenti da alcuni elementi marcati come opzionali. I numeri rimangono int quando si adattano a un intervallo a 32 bit e si allargano a long o double secondo le necessità; una chiave JSON che non può essere un identificatore Java, come un emoji, ricade a un nome generato sicuro.

Tutto viene eseguito localmente nel tuo browser — un campione JSON non viene mai caricato o trasmesso a un server. Copia le classi generate nel tuo progetto, scaricale come file .txt, oppure invia nuovamente l'output all'input per eseguire un altro strumento su di esso.

FAQ

Gestisce oggetti annidati e array?
Sì. Gli oggetti annidati diventano la loro propria classe (annidata o separata, a seconda dell'opzione di layout della classe) e gli array diventano una java.util.List generica del tipo di elemento dedotto.
Cosa succede a un campo che manca in alcuni oggetti di esempio?
Viene contrassegnato come opzionale e, se è un primitivo, aggiornato al suo tipo wrapper (Integer, Boolean, Double) in modo che il campo possa essere legittimamente null.
Posso usare Lombok o i record Java invece di getter e setter manuali?
Sì. Attiva Lombok @Data per una classe annotata con @Data e campi privati, oppure Usa un record Java per generare un record con i campi come componenti — entrambi sostituiscono gli accessor scritti a mano.
Come vengono scelti i nomi dei campi quando una chiave JSON non è un identificatore Java valido?
La chiave viene convertita in camelCase; una chiave che produce un nome vuoto o in conflitto con le parole chiave ricade a un nome generato sicuro come field o una parola chiave con un trattino basso alla fine.
Il mio JSON viene caricato da qualche parte?
No. La generazione della classe viene eseguita interamente nel tuo browser — il tuo campione JSON non viene mai inviato a un server.