如何在Spring Boot中忽略Post请求正文中的Null值

时间:2018-07-12 04:01:04

标签: spring-mvc spring-boot

我正在用POST动词调用REST服务。后请求主体是动态构造的。在某些情况下,很少会使用空值填充字段。即使我将我的Request pojo与@JsonInclude(Include.NON_NULL)@JsonInclude(JsonInclude.Include.NON_NULL)一起使用时,空值字段也不会被删除。

我的样品请求如下所示。

我要自己构造requestEntity,而不在发布前解析它。

resetTemplate.exchange(uri,HTTP.POST,requestEntity,responseObject)

如何在请求主体字段为空值的卸妆器中

我正在使用 Spring Boot 1.5.9 ,它使用的是 Jackson 2.x

2 个答案:

答案 0 :(得分:1)

@JsonInclude(Include.NON_NULL)应该为您服务!

您似乎是在自己构造请求实体,不确定是否要传递带有NON_NULL的JSON字符串。如果您已使用Jackson注释进行注释,则直接尝试使用实体。

restTemplate.postForEntity(uri, requestDto, ResponseDto.class);

答案 1 :(得分:0)

只需使用此@JsonSerialize(include = Inclusion.NON_NULL)而不是@JsonInclude(Include.NON_NULL),它就可以使用.. !!

注意:com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion现在已弃用。