2011-11-18 2 views
1

기본적으로 Jackson은 Map 타입을 비 직렬화 할 때 java.util.LinkedHashMap의 인스턴스를 생성합니다. Jackson이 다른 Map 구현을 만들도록 기본 매핑 디시리얼라이저를 계속 사용하려면 어떻게 사용자 정의 할 수 있습니까?Jackson 커스텀 맵 ValueInstantiator

답변

3

여러 가지 방법이 있지만 가장 쉬운 방법은 추상 클래스의 구체적인 구현으로 어떤 클래스를 사용해야 하는지를 지정하는 것입니다. 그래서 같은 것을이 모두 공통의 추상적 인 유형 (List, Collection, Map)뿐만 아니라 사용자 인터페이스와 추상 클래스의 구체적인 구현을 지정하기위한 디폴트 작동

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

.