Java 8 date/time type java.time.Instant not supported by default

报错

  1. Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.Instant` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling

原因

问题是创建了一个没有添加JavaTimeModule的新ObjectMapper实例。
在Spring2.5中失败报错:om.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type java.time.ZonedDateTime not supported by default这可能是由于 jackson-datatype-jsr310版本的升级的原因

解决

引入 jackson-datatype-jsr310的jar包

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.datatype</groupId>
  3. <artifactId>jackson-datatype-jsr310</artifactId>
  4. <version>2.13.1</version>
  5. </dependency>

使用时

  1. ObjectMapper o = new ObjectMapper();
  2. o.registerModule(new JavaTimeModule());