Spring,Jackson,默认属性包含忽略

w8f9ii69  于 2023-02-19  发布在  Spring
关注(0)|答案(1)|浏览(156)

在我的Sping Boot /Kotlin项目中,我试图让JSON转换器忽略rest控制器响应中的空值。
我尝试在我的application.yml中设置以下内容:

spring:
    jackson:
        default-property-inclusion: non_null

我还尝试过提供Jackson2ObjectMapperBuilder类型的@Bean和配置了.serializationInclusion(JsonInclude.Include.NON_NULL)@ObjectMapper,但它仍然序列化所有空属性。
使用Sping Boot 2.3.0、Kotlin1.3.72、采用OpenJDK 13

jslywgbw

jslywgbw1#

嗯,我发现了这个问题,从零开始创建一个新的项目,并从当前的一个添加片段,直到我得到了异常行为。
原来问题出在用于添加CORSMap的类中:

@EnableWebMVC
@Configuration
class WebConfiguration : WebMvcConfigurer {
    override fun addCorsMappings(registry: CorsRegistry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
    }
}

我想我添加了@EnableWebMVC,如示例中所示,但该类与@RESTController类不在类层次结构的同一部分,因此看起来这就是对象Map器配置没有被应用的原因,我对Spring/ Boot 的内部连接了解不够,无法告诉您原因。
一旦我删除了@EnableWebMVC并允许Sping Boot 通过自动配置将其添加到应用程序类中,它就按预期工作了...

相关问题