一尘不染

如何将POJO映射到几个JSON演示文稿

json

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

我正在使用杰克逊

我想要下面的代码

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

杰克逊该怎么做?或还有哪些其他图书馆可以做到这一点?


阅读 177

收藏
2020-07-27

共1个答案

一尘不染

您使用JSON视图

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);

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

2020-07-27