Spring:返回对象中的布尔变量

时间:2015-10-15 19:27:21

标签: java json spring-mvc jackson

我们说我有一个对象:

@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,如果它没有首先填充。有没有办法做到这一点?

1 个答案:

答案 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也不包含它。