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


}

最佳答案

将其更改为包装器类型Boolean,使其可以为null,并在类级别使用以下注释:@JsonInclude(Include.NON_NULL)@JsonInclude(JsonSerialize.Inclusion.NON_NULL)(如果使用的是Jackson的2.x +版本)

关于java - 转换为JSON时忽略Java bean字段(仅当尚未设置其值时),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43198885/

10-10 07:51