我有ABCResponse类,isActive是该类的成员。在将ABCResponse转换为JSON的同时,我想忽略isActive字段,只要它的值没有明确设置。 (isActive是布尔值,默认情况下我知道它的值是false,但是如果它的值没有明确设置,任何可能的方法都会忽略它吗?)
我不能使用@JSONIgnore,因为即使它的价值设定也会忽略。
公共类ABCResponse {
private boolean isActive;
private int id;
@JsonProperty("isActive")
public boolean isActive() {
return isActive;
}
public void setActive(boolean isActive) {
this.isActive = isActive;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
答案 0 :(得分:2)
将其更改为包装器类型Boolean
,使其可以为null,并在类级别使用以下注释:@JsonInclude(Include.NON_NULL)
或@JsonInclude(JsonSerialize.Inclusion.NON_NULL)
如果您使用的是版本2.x +杰克逊
答案 1 :(得分:1)
首先使用isActive作为布尔值,以使其默认值为null。
在课程顶部使用注释:
@JsonInclude(Include.NON_NULL) // in jackson 2.x
in earlier version use:
@JsonSerialize(include=JsonSerialize.Inclusion.ALWAYS)
备用配置可以是:
mapper.setSerializationInclusion(Include.NON_NULL); // in jackson 2.x
in earlier versions use:
mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);