我们说我有一个对象:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foods {
public Foods() {}
@Id
@JsonProperty
private String id;
@JsonProperty
private String name;
@JsonProperty
private Double calories;
@JsonProperty
private boolean sweet;
}
现在,在我的Spring REST API调用中,我只填充" name"食物的领域并将其归还。
我将此作为返回JSON:
{
"name": "Strawberry Pies",
"sweet": false
}
你可以看到,因为没有填充卡路里,JSON不会返回它。 "甜蜜"字段我想填充,因为布尔值的默认值是false。
但我不希望JSON字符串返回" sweet" boolean为false,如果它没有首先填充。有没有办法做到这一点?
答案 0 :(得分:2)
使用
注释您的字段(或属性getter / setter)@JsonInclude(JsonInclude.Include.NON_DEFAULT)
private boolean sweet;
NON_DEFAULT
个州的javadoc
表示仅具有不同值的属性的值 来自默认设置(意味着当Bean为时它们具有的值) 用其无参数构造函数构造)将被包括在内。
用
private boolean sweet;
默认值为false
。如果这是该字段对您序列化的对象的值,则JSON不会包含它。
同样,如果你有
private boolean sweet = true;
并且相应对象的字段的值为true
,生成的JSON也不包含它。