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
Jackson – décidez quels champs sont sérialisés/désérialisés
Jackson – Custom Serializer
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
Laisser un commentaire