java - 映射日期以使用 REST API 的最佳选项
问题描述
我需要使用 Java/Spring (RestTemplate) 使用 Rest API。在用 Postman 做了一些冒烟测试后,我看到日期字段具有这种结构
"clipStartDate": {
"__type": "Date",
"iso": "2010-09-14T00:00:00.000Z"
}
我尝试使用 java.time.LocalDateTime 在我的 DTO 中映射这些字段。但我得到一个序列化异常。(org.springframework.http.converter.HttpMessageNotReadableException:JSON 解析错误:无法构造实例java.time.LocalDateTime
)
在这种情况下,最佳做法是什么?
解决方案
您看到的此错误意味着您ObjectMapper
的配置不正确。在 Spring Boot 中,这是开箱即用的自动配置,因此如果您使用例如 Spring Boot 2.2,此错误将消失。
但是,如果由于某种原因您没有这种可能性,那么您需要ObjectMapper
使用一个名为JavaTimeModule
.
@Bean
public ObjectMapper objectMapper(){
return new ObjectMapper()
.registerModule(new JavaTimeModule());
}
这是一篇补充文章,描述了如何进一步自定义ObjectMapper
推荐阅读
- r - 处理条件列中的 NA
- php - 在 Woocommerce 中更改添加到购物车操作时的警报文本而不选择变体
- javascript - 导出要在控制台运行的函数
- java - 如何解决连接设备android studio中显示的模拟器不止一个
- java - Java awt 和 JFrame 有什么区别?
- java - 编组整数列表时出现 JAXB java.lang.ClassCastException
- sharepoint - 附加文件 Sharepoint 在线列表
- c# - 错误 - 方法“X.set_DbConnection(System.Data.Common.DbConnection)”访问方法“Y.get_Settings()”失败
- android - 从 Android Studio 从 github 导入外部库的问题
- r - R rbind 不同大小的表没有重复