SpringBoot中如何优雅地个性化定制Jackson( 二 )


@Beanpublic Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() {return new Jackson2ObjectMapperBuilder().serializers(LOCAL_DATETIME_SERIALIZER).serializationInclusion(JsonInclude.Include.NON_NULL);}它会默认配置两个选项:

  • 禁用 MapperFeature.DEFAULT_VIEW_INCLUSION
  • 禁用 DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
根据Jackson2ObjectMapperBuilder文档 , 如果它们存在于类路径中 , 它还将注册一些模块:
  • jackson-datatype-jdk8: 支持其他 Java 8 类型,如Optional
  • jackson-datatype-jsr310: 支持 Java 8 日期和时间 API 类型
  • jackson-datatype-joda: 支持 Joda-Time 类型
  • jackson-module-kotlin: 支持 Kotlin 类和数据类
这种方法的优点是 Jackson2ObjectMapperBuilder 提供了一种简单直观的方式来构建 ObjectMapper 。
3.MappingJackson2HttpMessageConverter我们可以定义一个MappingJackson2HttpMessageConverter 类型的 bean ,Spring Boot 会自动使用它:
@Beanpublic MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder().serializers(LOCAL_DATETIME_SERIALIZER).serializationInclusion(JsonInclude.Include.NON_NULL);return new MappingJackson2HttpMessageConverter(builder.build());}四、总结在本文中 , 我们了解了在使用 SpringBoot 时配置 JSON 序列化选项的几种方法 。
我们看到了两种不同的方法:配置默认选项或覆盖默认配置 。




推荐阅读