Spring Boot Jackson 和数据序列化
Posted
技术标签:
【中文标题】Spring Boot Jackson 和数据序列化【英文标题】:Spring Boot Jackson and Data serialization 【发布时间】:2017-09-09 16:38:49 【问题描述】:在我的 Spring Boot 应用程序中,我使用带有 @RestController
的以下 DTO:
public abstract class ComparableQuery extends BaseQuery
private final Object value;
...
一切正常,但是当我使用 Spring RestTemplate
并将 java.util.Date
作为 ComparableQuery.value
传递时,我看到 Jackson 将日期对象序列化为以下“神奇”数字:
"value":1009836000000
现在我不明白日期对象是如何序列化为 1009836000000
数字表示的,以及当我使用 AngularJS 作为后端 API 的客户端时如何模拟它。请指教。
【问题讨论】:
我认为这是您的日期值,并以长表示。您可以使用 simpledateformat 或与所需格式等效的任何内容接收此值并对其进行格式化 例如如何在AngularJS中准备这个值? 这个属性有帮助吗?spring.jackson.date-format=yyyy-MM-dd'T'HH:mm:ss.SSSZ
好问题我也需要答案
【参考方案1】:
这是一个与this answer about null
handling with jackson and spring boot 中描述的非常相似的问题。
application.properties
中日期格式的相应配置应如下所示:
spring.jackson.write-dates-as-timestamps=false
【讨论】:
以上是关于Spring Boot Jackson 和数据序列化的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Boot 中使用 Jackson 反序列化 Date 对象
Spring boot - Jackson 日期序列化和反序列化
Spring Boot 自定义Jackson ObjectMapper