2013-02-08 84 views
0

如何將POJO映射到幾個JSON演示文稿?我正在使用Jackson如何將POJO映射到幾個JSON演示文稿

我想下面

@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

請注意,每次構建一個新的對象映射器通常是一個糟糕的想法 - 這是非常昂貴的。映射器實例應該被重用。 – 2016-09-19 22:28:52