Panoramica
Questo breve tutorial illustrerà come utilizzare Jackson 2 per deserializzare JSON utilizzando un deserializzatore personalizzato.
Se vuoi scavare più a fondo e imparare altre cose interessanti che puoi fare con Jackson 2 – vai al tutorial principale di Jackson.,
Ulteriori letture:
Introduzione all’ObjectMapper di Jackson
Jackson – Decidi quali campi vengono serializzati/deserializzati
Jackson – Custom Serializer
E infine, unmarshall questo JSON Java Entità:
Item itemWithOwner = new ObjectMapper().readValue(json, Item.class);
Custom Deserializer su ObjectMapper
Nell’esempio precedente, la rappresentazione JSON abbinati java entità perfettamente a quel punto, possiamo semplificare JSON:
{ "id": 1, "itemName": "theItem", "createdBy": 2}
Quando unmarshalling questo esattamente con la stessa entità – per impostazione predefinita, ovviamente questo errore:
risolviamo questo facendo nostra la deserializzazione con un costume Deserializer:
Come si può vedere, il deserializer sta lavorando con lo standard Jackson rappresentazione JSON – il JsonNode., Una volta che l’input JSON è rappresentato come un JsonNode, ora possiamo estrarre le informazioni rilevanti da esso e costruire la nostra entità Item.,
Semplicemente, dobbiamo registrare questa usanza deserializer e semplicemente deserializzare il JSON normalmente:
Custom Deserializer di Classe
in Alternativa, si può anche registrare il deserializer direttamente sulla classe:
@JsonDeserialize(using = ItemDeserializer.class)public class Item { ...}
Con il deserializer definiti a livello di classe, non c’è bisogno di registrare il ObjectMapper – un default mapper funziona bene:
Item itemWithOwner = new ObjectMapper().readValue(json, Item.class);
Questo tipo di classe che la configurazione è molto utile in situazioni in cui non abbiamo accesso diretto al grezzo ObjectMapper da configurare.,
Conclusione
Questo articolo mostra come sfruttare Jackson 2 per leggere l’input JSON non standard e come mappare quell’input a qualsiasi grafico di entità java con il pieno controllo sulla mappatura.
L’implementazione di tutti questi esempi e frammenti di codice può essere trovata in over on GitHub – è un progetto basato su Maven, quindi dovrebbe essere facile da importare ed eseguire così com’è.
Inizia con Spring 5 e Spring Boot 2, attraverso il corso Learn Spring:
> >SCOPRI IL CORSO
Lascia un commento