Spring Boot 1.5.4 过滤掉 json 响应中的空值



我正在使用Spring Boot 1.5.4版本。我正在使用spring-ws getWebServiceTemplate()进行网络服务调用。SOAP 响应具有许多字段的空值。

我正在尝试过滤掉 JSON 响应中的空值。以下方法似乎都不起作用:

  1. application.properties中设置属性:
spring.jackson.default-property-inclusion:NON_NULL`
  1. 使用Jackson2ObjectMapperBuilder在配置类中设置它:
@Bean
public Jackson2ObjectMapperBuilder objectMapperBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();        
builder.serializationInclusion(JsonInclude.Include.NON_NULL);
builder.serializationInclusion(JsonInclude.Include.NON_EMPTY);
return builder;
} 

请指教。

LVA

我正在使用Spring Boot 1.5.6.RELEASE版本,您可以参考 自定义杰克逊对象映射器

以下代码是有效的:

@SpringBootApplication
public class Application {
@Bean
public Jackson2ObjectMapperBuilder objectMapperBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.serializationInclusion(JsonInclude.Include.NON_NULL);
return builder;
}
public static void main(String[] args) {
SpringApplication.run(DbeeApiApplication.class, args);
}
}

或者您可以从MappingJackson2HttpMessageConverter中过滤,例如:

@Configuration
class WebMvcConfiguration extends WebMvcConfigurationSupport {
@Override
protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
for(HttpMessageConverter<?> converter: converters) {
if(converter instanceof MappingJackson2HttpMessageConverter) {
ObjectMapper mapper = ((MappingJackson2HttpMessageConverter)converter).getObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
}
}
}
}

在application.properties中使用以下内容是有效的。

spring.jackson.default-property-inclusion=NON_NULL

相关内容

  • 没有找到相关文章