aperçu

Ce tutoriel rapide illustrera comment utiliser Jackson 2 pour désérialiser JSON à l’aide d’un désérialiseur personnalisé.

Si vous voulez creuser plus profondément et apprendre d’autres choses intéressantes que vous pouvez faire avec le Jackson 2 – rendez-vous sur le tutoriel principal Jackson.,

pour en savoir plus:

Intro de Jackson ObjectMapper

L’article traite de la classe ObjectMapper centrale de Jackson, de la sérialisation de base et de la désérialisation ainsi que de la configuration des deux processus.
Lire la suite →

Jackson – décidez quels champs sont sérialisés/désérialisés

comment contrôler quels champs sont sérialisés / désérialisés par Jackson et quels champs sont ignorés.,
Lire la suite →

Jackson – Custom Serializer

contrôlez votre sortie JSON avec Jackson 2 en utilisant un sérialiseur personnalisé.,>

et enfin, décompressons ce JSON en entités Java:

Item itemWithOwner = new ObjectMapper().readValue(json, Item.class);

désérialiseur personnalisé sur ObjectMapper

dans L’exemple précédent, la représentation JSON correspondait parfaitement aux entités java – ensuite, nous simplifierons le JSON:

{ "id": 1, "itemName": "theItem", "createdBy": 2}

lorsque vous décompressez cela exactement aux mêmes entités – par défaut, cela échouera bien sûr:

Nous allons résoudre ce problème en faisant notre propre désérialisation avec un désérialiseur personnalisé:

comme vous pouvez le voir, le désérialiseur fonctionne avec la représentation Jackson standard de json – le jsonnode., Une fois que le JSON d’entrée est représenté comme un JsonNode, nous pouvons maintenant en extraire les informations pertinentes et construire notre propre entité Item.,

en termes simples, nous devons enregistrer ce désérialiseur personnalisé et simplement désérialiser le JSON normalement:

désérialiseur personnalisé sur la classe

alternativement, nous pouvons également enregistrer le désérialiseur directement sur la classe:

@JsonDeserialize(using = ItemDeserializer.class)public class Item { ...}

avec le désérialiseur défini au niveau de la classe, il ObjectMapper – un mappeur par défaut fonctionnera correctement:

Item itemWithOwner = new ObjectMapper().readValue(json, Item.class);

Ce type de configuration par classe est très utile dans les situations dans lesquelles nous n’avons peut-être pas un accès direct au ObjectMapper brut à configurer.,

Conclusion

Cet article montre comment tirer parti de Jackson 2 pour lire une entrée JSON non standard-et comment mapper cette entrée à n’importe quel graphique d’entité java avec un contrôle total sur le mappage.

l’implémentation de tous ces exemples et extraits de code peut être trouvée dans over sur GitHub – c’est un projet basé sur Maven, il devrait donc être facile à importer et à exécuter tel quel.

Get a commencé avec le Printemps 5 et le Printemps de Démarrage 2, par l’intermédiaire de l’Apprendre Printemps cours:

>> découvrez LE PARCOURS

Précédent

Steve Carell (Français)

Suivant

livres électroniques

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *