我在java类中有一个String属性“ version”。我正在使用Jackson对象映射器将Java类对象序列化为JSON。
我正在针对两个用例对同一类进行序列化:1)将JSON值存储到键值数据库存储中,以及2)将响应发送回API调用。
对于第一个用例,我需要序列化JSON中的“版本”属性,而对于第二个用例,则不需要将其发送回用户。
在两个用例中,使用@JsonIgnore版本都无法获得该属性。
我进行了足够的搜索,发现在某些情况下可以在Jackson映射器上设置任何忽略@JsonIgnore的配置吗?到目前为止没有运气!感谢您提前提出建议或解决方法。
答案 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;
}