转换为JSON时忽略java bean字段仅当它的值未设置时才会被忽略

时间:2017-04-04 05:25:33

标签: java json javabeans pojo

我有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;
}

}

2 个答案:

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