0

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

我正在使用杰克逊

我想要下面的代码

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

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

4

1 回答 1

6

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

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

于 2013-02-08T14:55:29.680 回答