繁体   English   中英

如何覆盖 class 属性中的 application.yml?

[英]How can I overwrite a application.yml in a class attribute?

我的属性 yml 文件中有这个属性:

jackson:
    default-property-inclusion: non_null
    serialization:
        write-empty-json-arrays: false
    serialization-inclusion: NON_EMPTY

它的作用是禁止 JSON 为空 arrays。 但是对于 class 中的特定属性,我希望能够将其返回为空。 有没有办法或财产我可以用来做这个? 谢谢!

唯一的方法是创建另一个ObjectMapper ,然后使用它来序列化特定的 class。

@Configuration
class JacksonConfiguration {

    @Bean
    fun mainObjectMapper() = jacksonObjectMapper().apply {
        setSerializationInclusion(JsonInclude.Include.NON_NULL)
        setSerializationInclusion(JsonInclude.Include.NON_EMPTY)
    }

    @Bean
    fun otherObjectMapper() = jacksonObjectMapper().apply {
        setSerializationInclusion(JsonInclude.Include.NON_NULL)
    }
}

但是,对于这么简单的事情,这似乎有点过头了。


另一个可能对您最好的选择是使用@JsonInclude注释。 您可以按如下方式使用它:

@JsonInclude(JsonInclude.Include.ALWAYS)
List<String> propertyToSerializeEvenIfEmptyOrNull;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM