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

gcxthw6b  于 7个月前  发布在  其他
关注(0)|答案(2)|浏览(109)

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

<dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <version>2.13.0</version>
</dependency>

在域中:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
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版本):

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

a0x5cqrl2#

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

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

相关问题