@JsonInclude(Include.NON_NULL)未按预期工作

时间:2014-10-08 12:18:16

标签: java web-services

我在Response类上添加了@JsonInclude(Include.NON_NULL)注释。

@JsonInclude(Include.NON_NULL)
public class Response {

  @JsonProperty
  private String message;

 // getter-setters
}

如果值为null,则该属性不包含在JSON中

但我仍然将此属性设为NULL。

{
"message": null
}

可能是什么原因?我错过了什么吗?

4 个答案:

答案 0 :(得分:7)

我试过

@JsonSerialize(include = Inclusion.NON_NULL)

而不是

@JsonInclude(Include.NON_NULL)

它按预期工作。

答案 1 :(得分:2)

我正在使用Java Spring,并且在实现中,像这样:

课程级别:

import com.fasterxml.jackson.annotation.JsonInclude;

        @JsonInclude(JsonInclude.Include.NON_NULL)
        public class Student {

            String name;
            //getter-setter
    }

您也可以在class的元素级别上实现它:

元素级别:

import com.fasterxml.jackson.annotation.JsonInclude;

        @JsonInclude(JsonInclude.Include.NON_NULL)
        public class Student {

            String name;

            @JsonInclude(JsonInclude.Include.NON_NULL)
            String address;
            //getter-setter
    }

答案 2 :(得分:1)

这已被弃用:

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)

改为使用:

@JsonInclude(Include.NON_NULL)

答案 3 :(得分:1)

我遇到了同样的问题 通过使用

解决
@JsonInclude(value = Include.NON_EMPTY, content = Include.NON_NULL)