2011-11-18 5 views
1

Par défaut, Jackson crée des instances de java.util.LinkedHashMap lors de la désérialisation de types Map. Comment cela peut-il être personnalisé pour que Jackson crée une implémentation Map différente, tout en continuant à utiliser son désérialisateur de carte par défaut?Jackson Personnaliser Map ValueInstantiator

Répondre

3

Il existe plusieurs façons de le faire, mais le plus simple est probablement de spécifier quelle classe doit être utilisée comme implémentation concrète d'une classe abstraite. Donc, quelque chose comme:

SimpleModule myModule = new SimpleModule(...); 
myModule.addAbstractTypeMapping(Map.class, SomeOtherMap.class); 
objectMapper.registerModule(myModule); 

cela fonctionne à la fois en défaut de types abstraits communs (List, Collection, Map), ainsi que pour spécifier des implémentations concrètes des interfaces personnalisées et des classes abstraites.

Questions connexes