1、问题背景最近项目在通过sql查询数据的时候报了如下错误Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type java.time.LocalDateTime not supported by default: add Module com.fasterxml.jackson.datatype:jackson-datatype-jsr310 to enable handling (through reference chain: com.ytx.dependency.common.utils.Result[data]-com.ytx.ccserverform.modules.data.dto.ViewModelDataVO[list]-java.util.ArrayList[0]-java.util.HashMap[occurrence_time])2、分析过程异常信息Java 8 date/time type java.time.LocalDateTime not supported by default: add Module “com.fasterxml.jackson.datatype:jackson-datatype-jsr310”从异常信息中我们解读到 java8 Jackson库在默认情况下不支持LocalDateTime序列化和反序列化。于是看了数据表的字段确实有datetime日期类型的字段 java8将java.time.LocalDateTime序列化为 JSON 时就会报以上错误。3、解决方法1、配置全局配置亲测有效在SpringbootWebMvcConfigurer其全局配置中增加以下配置代码如下Configuration public class WebJsonConverterConfig implements WebMvcConfigurer { /** * 解决Java8 日期序列化问题 * jackson默认不支持java8 LocalDateTime的序列化和反序列化 * * param converters */ Override public void extendMessageConverters(ListHttpMessageConverter? converters) { MappingJackson2HttpMessageConverter messageConverter new MappingJackson2HttpMessageConverter(); ObjectMapper objectMapper new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); objectMapper.registerModule(new JavaTimeModule()); messageConverter.setObjectMapper(objectMapper); converters.add(0, messageConverter); } }2、用阿里的FastJson替换ObjectMapper4、总结对于这个问题解决得方案有很对核心还是对LocalDate进行进行序列器解析将LocalDateTime转为Date。大家根据自己得需要选择合适得方案本文就不一一列举所有方案了。