【问题标题】:How to map POJO to several JSON presentation如何将 POJO 映射到多个 JSON 表示
【发布时间】:2013-02-08 14:37:56
【问题描述】:

如何将 POJO 映射到几个 JSON 表示?

我正在使用Jackson

我想要下面的代码

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

杰克逊如何做到这一点?或者还有哪些其他库可以做到这一点?

【问题讨论】:

    标签: java json jackson


    【解决方案1】:

    你使用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);
    

    请注意,这些是包含而不是排他的;您创建一个包含所需字段的视图。

    【讨论】:

    • 请注意,每次都构建一个新的对象映射器通常是一个坏主意——它非常昂贵。映射器实例应该被重用。
    猜你喜欢
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 2017-03-31
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    相关资源
    最近更新 更多