Guida

JSON a POJO: classi o record Java da un JSON

Incolla il tuo JSON e ottieni codice Java pronto all’uso: una classe per ogni oggetto, con campi privati, un costruttore senza argomenti, getter e setter, oppure record Java se preferisci. Gli oggetti annidati vengono scritti dentro la classe che li contiene, così tutto il risultato sta in un solo file .java. Aggiungi le annotazioni Jackson o Gson quando ti servono le chiavi JSON originali. La conversione avviene nel browser e il JSON non viene caricato.


JSON to POJO online Java: come si usa

  1. Incolla il JSON nella casella JSON (mostra «Incolla qui il JSON...»). Un testo incollato viene convertito subito. Se scrivi, il codice si aggiorna circa 300 millisecondi dopo che ti fermi.
  2. Leggi le classi sotto Codice Java. Una riga sotto, come «Generate 2 classi.», indica quante ne sono state scritte.
  3. Premi Copia, subito sotto il codice. Il pulsante mostra per un momento «Copiato». Salva il codice in un file con il nome della classe radice, per esempio Root.java.
  4. Per cambiare il risultato, apri Impostazioni: scrivi il Nome della classe radice (il valore predefinito è Root), scegli in Annotazioni tra Nessuna, Jackson e Gson, oppure spunta Usa i record invece delle classi. Il codice si aggiorna appena cambi un’impostazione.
  5. Premi Cancella per svuotare la casella e ricominciare.

JSON POJO Java: un esempio

Questo è ciò che incolli: { "user_id": 7, "name": "Ana", "price": 4.5, "tags": ["a", "b"], "address": { "city": "Kyoto" } }

Con Annotazioni su «Nessuna», il risultato inizia con import java.util.List; e public class Root. I campi sono Integer userId, String name, Double price, List<String> tags e Address address. Seguono il costruttore senza argomenti e getter e setter come getUserId e setUserId.

L’oggetto annidato address è diventato Address, una public static class dentro Root, ed è per questo che basta un solo file. La chiave user_id è diventata il campo userId. La riga di stato te lo segnala: «1 nome di campo è stato modificato per adattarsi a Java.»

JSON in record Java con annotazioni Jackson

Imposta il Nome della classe radice su Order, scegli Jackson in Annotazioni e spunta Usa i record invece delle classi. Lo stesso JSON diventa public record Order(...).

Ogni componente del record porta @JsonProperty("key") con la chiave JSON originale, quindi user_id continua a corrispondere a userId. Se scegli Gson, gli stessi componenti portano @SerializedName("key"), con l’import di Gson. I record richiedono Java 16 o successivo.

Come i tipi JSON diventano tipi Java

Tutti i tipi sono classi wrapper, quindi ogni campo può mancare o essere null.

I numeri vengono letti esattamente come sono scritti, quindi un ID lungo non viene mai arrotondato. Gli import compaiono solo quando il codice li usa. Se una chiave compare due volte nello stesso oggetto, vince l’ultima.

Come vengono scelti i nomi di classi e campi

Il nome della classe radice viene ripulito fino a diventare un nome Java valido, e una casella vuota dà Root. Quando il JSON stesso inizia con un array di oggetti, Root descrive un elemento e la pagina ti dice di leggere il JSON come List<Root>.

Quando il JSON non viene accettato

Il lettore è rigoroso, come lo è JSON: commenti, apici singoli e virgole finali sono errori. Il messaggio «Impossibile leggere questo JSON» dà un motivo chiaro e la posizione, come «Riga 3, colonna 5», per esempio «L’analisi si è fermata su «}». Controlla se manca una virgola, i due punti, una parentesi o delle virgolette subito prima.»

Un JSON valido che non contiene oggetti, come 42 o un array di numeri, mostra «Questo JSON non contiene oggetti da trasformare in classe.» Un testo di oltre 2.000.000 di caratteri viene rifiutato, così come un annidamento oltre i 200 livelli.


Domande frequenti

Come si passa da JSON a POJO in Java?

Incolla il JSON nella casella «JSON» e copia il codice sotto «Codice Java». Ottieni una classe per ogni oggetto JSON, con campi privati, un costruttore pubblico senza argomenti e metodi pubblici getX e setX. Salva il codice in un file con il nome della classe radice, per esempio Root.java, poi leggi il JSON con Jackson o Gson.

Come si converte un array JSON in oggetti Java?

Incolla l’array di oggetti così com’è. Lo strumento descrive un elemento dell’array come classe radice e ti dice di leggere il JSON come List. In Jackson è un TypeReference>, in Gson un TypeToken>. Un array dentro un oggetto diventa un campo List, con la classe che prende il nome dalla chiave.

Come ottengo un JSON POJO Jackson che mantenga le chiavi originali, o con Gson?

Apri «Impostazioni» e scegli Jackson o Gson in «Annotazioni». Jackson aggiunge @JsonProperty("key") e Gson aggiunge @SerializedName("key") su ogni campo, insieme all’import. Con «Nessuna», una chiave come user_id diventa il campo userId, che non corrisponde più al JSON a meno che la chiave originale non venga conservata con un’annotazione o una strategia di naming.

Posso passare da JSON in record Java?

Sì. Spunta «Usa i record invece delle classi» in «Impostazioni». Ogni oggetto JSON diventa public record Name(Type a, Type b) {}, e gli oggetti annidati diventano record dentro il record che li contiene. I record richiedono Java 16 o successivo. Le annotazioni funzionano ancora e vengono messe su ogni componente del record.

Perché un numero JSON è Integer in un punto e Double in un altro?

Il tipo dipende da come è scritto il numero. Un numero intero è un Integer, oppure un Long se è troppo grande per un Integer, oppure un BigInteger se è troppo grande per un Long. Un numero scritto con punto decimale o esponente è un Double, anche se vale 1.0.

Cosa succede se gli oggetti di un array hanno chiavi diverse?

Vengono uniti in un’unica classe che contiene ogni chiave vista in uno qualsiasi di essi, quindi anche le chiavi presenti solo in alcuni oggetti ricevono un campo. Se una chiave contiene tipi diversi o un array è vuoto, il campo ha tipo Object o List. Controlla quei campi a mano.

Genera classi Kotlin o annotazioni Lombok?

No. L’output è Java semplice: classi con getter e setter, oppure record. Se usi Lombok, elimina i metodi getter e setter e metti @Data sulla classe. Una data class Kotlin va scritta a parte.

Da JSON a Java online: il file viene caricato, e quanto può essere grande?

Fino a 2.000.000 di caratteri, con un annidamento fino a 200 livelli. La conversione avviene nel tuo browser, quindi il JSON non viene caricato né salvato da nessuna parte.

Consigliati

Aiuta a mantenere gratuiti gli strumenti. ✨

Le immagini sono solo a scopo illustrativo. In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei.