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有同样的问题,但这对我没有影响:-/