如何使用Jackson启用JSR 310对LocalDate的支持?

gcxthw6b  于 2023-10-20  发布在  其他
关注(0)|答案(2)|浏览(212)

我已经将JS310依赖项添加到Maven并刷新了依赖项:

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

在域中:

  1. @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
  2. LocalDate start;

但是,我收到了这个错误:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type java.time.LocalDate not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling

cuxqih21

cuxqih211#

该错误是指示性的,并解释了您尚未注册JavaTimeModule模块,如datetime中所述:要注册它,你可以这样做(或其他等效的方式在我之前添加的链接中解释,依赖于你正在使用的Jacksonlibrary版本):

  1. ObjectMapper mapper = JsonMapper.builder()
  2. .addModule(new JavaTimeModule())
  3. .build();
a0x5cqrl

a0x5cqrl2#

默认情况下不支持java.time.LocalDate,因此我们必须注册该模块。添加这一行用于注册-

  1. DatabindCodec.mapper().registerModule(new JavaTimeModule());

相关问题