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

Java @JsonInclude(Include.NON_NULL)未按预期工作,java,web-services,Java,Web Services,我在响应类上添加了@JsonInclude(Include.NON_NULL)注释 @JsonInclude(Include.NON_NULL) public class Response { @JsonProperty private String message; // getter-setters } 如果该值为null,则JSON中不包含该属性 但我仍然得到这个属性为NULL { "message": null } 原因可能是什么?我遗漏了什么吗?我试过了 @JsonS

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

@JsonInclude(Include.NON_NULL)
public class Response {

  @JsonProperty
  private String message;

 // getter-setters
}
如果该值为null,则JSON中不包含该属性

但我仍然得到这个属性为NULL

{
"message": null
}
原因可能是什么?我遗漏了什么吗?

我试过了

@JsonSerialize(include = Inclusion.NON_NULL)
intead of

@JsonInclude(Include.NON_NULL)

它的工作原理与预期一样。

这一点已被弃用:

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
改用:

@JsonInclude(Include.NON_NULL)

我使用的是Java Spring&在这方面,我实现的方式如下:

班级级别:

import com.fasterxml.jackson.annotation.JsonInclude;

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

            String name;
            //getter-setter
    }
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
    }
您还可以在类的元素级别实现它:

元素级别:

import com.fasterxml.jackson.annotation.JsonInclude;

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

            String name;
            //getter-setter
    }
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
    }

我遇到了同样的问题 利用

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

非常感谢。在我的Spring项目中,使用Jackson.com.fasterxml.Jackson.databind.annotation.JsonSerialize.Inclusion的2.3.3版时遇到了这个问题。现在不推荐使用此版本:-/@LeventDivilioglu,请参见上面的注释。在Jackson
@JsonSerialize(include=which)的更高版本中,它已被弃用。
现在已被弃用。对于Jackson的最新版本,这不是正确的方法。这不是Include.NON_NULL注释的要点吗?如果希望包含所有字段,请删除注释。这可能是因为@JsonSerialize(include=Inclusion.NON_NULL)不推荐使用。op说的这一点不起作用。我和op有同样的问题,但这对我没有影响:-/