spring-boot - Jackson - 通过 Jackson2ObjectMapperBuilderCustomizer 配置集合覆盖

标签 spring-boot jackson

我在我的 Spring Boot 配置中通过构建一个新的映射器来自定义我的 Jackson 对象映射器中的集合处理

@Configuration
public class Config {

@Autowired(required = true)
public void objectMapper(ObjectMapper mapper) {

    mapper.configOverride(Collection.class).setInclude(JsonInclude.Value.construct(JsonInclude.Include.NON_EMPTY, null));
    mapper.configOverride(List.class).setInclude(JsonInclude.Value.construct(JsonInclude.Include.NON_EMPTY, null));
    mapper.configOverride(Map.class).setInclude(JsonInclude.Value.construct(JsonInclude.Include.NON_EMPTY, null));

}

虽然这可行,但我知道更优雅的方法是使用 Jackson2ObjectMapperBuilderCustomizer :

@Bean
public Jackson2ObjectMapperBuilderCustomizer customizeJackson2ObjectMapper() {
    return new Jackson2ObjectMapperBuilderCustomizer() {

        @Override
        public void customize(Jackson2ObjectMapperBuilder builder) {
            builder
            .indentOutput(true)
            .someOtherMethod(...)

        }
    };
}

如何通过 Jackson2ObjectMapperBuilder 实现上面的 ObjectMapper 集合调整?

最佳答案

您可以使用本地定义的简单 Module,如 this other use case . SetupContext 也有一个 configOverride() 方法,就像 ObjectMapper 本身一样。

关于spring-boot - Jackson - 通过 Jackson2ObjectMapperBuilderCustomizer 配置集合覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41141573/

相关文章:

java - spring-websockets 如何在打开的连接上发送参数

java - @jsonview of jackson 不使用 jax-rs

java - 防止在 Jackson 中自动将字符串转换为整数

java - @JsonSerialize 和 @JsonDeserialize 包含在注释中时不起作用

spring - 使用 Jackson 解决循环依赖错误,无需使用注释

Spring Boot 和 MongoDB - 如何保存日期

java - 如何使用 application.properties 在 Spring 中禁用 csrf?

java - Spring Boot 未连接到 RabbitMQ

java - 如何在 Spring Boot 中创建 Apache POI Excel View 配置

java - jackson 的 ObjectMapper 错误