2013-02-08 55 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