相关疑难解决方法(0)

Java 8 日期时间类型使用 Spring Boot 序列化为对象

我有一个包含 Java 8 日期时间类型字段的实体。问题是这些字段被序列化为对象。我添加了jackson-datatype-jsr310依赖项,因此 Spring Boot 1.5.7 会自动配置JavaTimeModule处理 Java 8 日期时间类型。看来该模块没有注册(我在 JavaTimeModule 构造函数中放置了一个断点)。我知道我不需要定制ObjectMapper。我花了几个小时阅读该问题,解决方案始终是添加jackson-datatype-jsr310依赖项,但它在我的情况下不起作用。

实体:

@Entity
public class DateTimeEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private LocalDate localDate;

    private LocalDateTime localDateTime;

    private Instant instant;

    private OffsetDateTime offsetDateTime;

    private ZonedDateTime zonedDateTime;

}
Run Code Online (Sandbox Code Playgroud)

RestController 方法:

@GetMapping("/datetimes/{id}")
public ResponseEntity<DateTimeEntity> getById(@PathVariable Long id) {
    DateTimeEntity dateTimeEntity = dateTimeRepository.findOne(id);
    return new ResponseEntity<DateTimeEntity>(dateTimeEntity, HttpStatus.OK);

}
Run Code Online (Sandbox Code Playgroud)

返回的 JSON 对象:

    {
    "id": 1,
    "localDate": null,
    "localDateTime": null,
    "instant": { …
Run Code Online (Sandbox Code Playgroud)

spring spring-boot

21
推荐指数
4
解决办法
3万
查看次数

标签 统计

spring ×1

spring-boot ×1