此问题已在此处有答案:
How do I enable the JSR310 support for LocalDate using Jackson?(1个答案)
2天前关闭。
我尝试用LocalDate类型的属性填充名为Reservation的对象
private LocalDate dateReservation;
我想像这样填充Reservation类
ReservationDto reservationDto = new ReservationDto();
类Reservation和ReservationD具有相同的LocalDate库
import java.time.LocalDate;
为了加载预订日期,我尝试了以下几种方法:
log.info("Date : " + LocalDate.now());
LocalDate str = LocalDate.of(2020, 8, 15);
log.info("the date is " + str);
reservationDto.setDateReservation(str);
reservationDto.setDateReservation(LocalDate.of(2020, 8, 15));
reservationDto.setDateReservation(LocalDate.now());
使用日志显示日期,但使用setReservationDate显示以下消息:
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 (through reference chain: fr.gopartner.locationvoiture.dto.ReservationDto["dateReservation"])
我使用JDK 11。我试着加上依赖关系:
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
我尝试更改依赖项,加载Map器对象以序列化/反序列化我的ReservationDto对象,仍然显示InvalidDefinitionException上面的相同错误。请帮帮我我被卡住了
2条答案
按热度按时间tzdcorbm1#
您需要配置JacksonObjectMapper以添加对JDK 8日期/时间类的支持。最简单的方法是这样的:
根据您使用的Jackson版本,还有各种其他方法可以做到这一点,更多信息请参见Jackson Java 8 modules页面。
ajsxfq5m2#
您需要通过添加以下代码来注册时间模块