2013-02-08 4 views
0

POJO를 여러 JSON 프리젠 테이션에 매핑하는 방법은 무엇입니까?POJO를 여러 JSON 프리젠 테이션에 매핑하는 방법

나는 Jackson을 사용하고 있습니다.

내가

@JsonIgnorePropertiesStreamA({ "value2" }) 
@JsonIgnorePropertiesOtherWay({ "value3" }) 
public class Value { 
    public int value; 
    public int value2; 
    public int value3; 
} 

아래 코드 같은 것을 원하는 방법 잭슨 것을 할까? 또는 다른 어떤 라이브러리가이를 할 수 있습니까?

답변

7

당신은 이러한 포함 오히려 독점보다 것을 JSON Views

class Views { 
    static class PublicView { } 
    static class StreamA extends PublicView { } 
    static class OtherWay extends PublicView { } 
} 

public class Value { 
    @JsonView(Views.PublicView.class) public int value; 
    @JsonView(Views.OtherWay.class) public int value2; 
    @JsonView(Views.StreamA.class) public int value3; 
} 


String json = new ObjectMapper() 
       .writerWithView(Views.OtherWay.class) 
       .writeValueAsString(valueInstance); 

주를 사용; 원하는 필드가 포함 된보기를 만듭니다.

+0

매번 새로운 개체 매퍼를 만드는 것은 일반적으로 나쁜 생각인데 매우 비쌉니다. 매퍼 인스턴스는 다시 사용해야합니다. –

관련 문제