序列化时如何“忽略” @JsonIgnore?

时间:2018-12-29 23:00:27

标签: jackson

我在java类中有一个String属性“ version”。我正在使用Jackson对象映射器将Java类对象序列化为JSON。

我正在针对两个用例对同一类进行序列化:1)将JSON值存储到键值数据库存储中,以及2)将响应发送回API调用。

对于第一个用例,我需要序列化JSON中的“版本”属性,而对于第二个用例,则不需要将其发送回用户。

在两个用例中,使用@JsonIgnore版本都无法获得该属性。

我进行了足够的搜索,发现在某些情况下可以在Jackson映射器上设置任何忽略@JsonIgnore的配置吗?到目前为止没有运气!感谢您提前提出建议或解决方法。

2 个答案:

答案 0 :(得分:1)

以简单的方式进行操作,而在第二种情况下,将version设置为null并在类级别或属性级别添加此属性

@JsonInclude(Include.NON_NULL)

答案 1 :(得分:1)

如果需要多个表示形式,可以使用@JsonView

public class Views {
    public static class Public {
    }

    public static class Private {
    }
}

public class User {
    public int id;

    @JsonView(Views.Public.class)
    public String name;
}

https://www.baeldung.com/jackson-json-view-annotation