2014-04-09 3 views
0

상태 메시지와 페이로드 개체를 사용하는 일반적인 응답 개체가 있습니다.콘크리트 Jacksonizer 일반 속성

public class Response { 
    private String status; 
    private Object payload; 
    // getters/setters 
} 

개체는 목록 또는 배열을 포함하여 모든 유형이 될 수 있습니다. (훨씬 좋아해요 : Jackson JSON List with Object Type).

@JsonSerialize(using = ModelSerializer.class) 
private List<Model> models; 

방법이이 일반적인 방법으로 달성 될 수있다 : 개체가 목록 인 경우

, 나는 시리얼 라이저와 그것에 대해 잭슨 말할 주석을해야합니까? 객체 후보에 공통된 수퍼 클래스를 도입 할 수 있지만 각 유형에 대해 별도의 Response 클래스를 "구현"하고 싶지는 않습니다. 여기에 설명 된대로

답변

0

당신은 목록의 시리얼을 등록하여 객체 매퍼를 구성 할 수 있습니다 http://wiki.fasterxml.com/JacksonHowToCustomSerializers

ObjectMapper mapper = new ObjectMapper(); 
SimpleModule testModule = new SimpleModule("MyModule", new Version(1, 0, 0, null)); 
testModule.addSerializer(new ModelSerializer()); 
mapper.registerModule(testModule); 

당신의 응답을 직렬화, 잭슨은 사용자 정의 직렬화를 선언하는 것을 제외한 모든 객체에 대한 기본 직렬화를 사용합니다.