【发布时间】:2018-12-19 10:40:21
【问题描述】:
我正在从使用 java.sql.Timestamp 和 java.util.GregorianCalendar 转变为在 Spring MVC 应用程序中使用 java.time.* 新类。
所以我改变了每个
private GregorianCalendar field;
到
private LocalDate field;
或
private LocalDateTime field;
但是现在在序列化这些 bean 时,它们会像这样被序列化:
"field": {
"year": 1970,
"month": "JANUARY",
"dayOfMonth": 18,
"dayOfWeek": "SUNDAY",
"era": "CE",
"dayOfYear": 18,
"leapYear": false,
"monthValue": 1,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
},
我找到了提到向jackson-datatype-jsr310 添加依赖项的其他问题的答案并获得:
"field": [
1970,
1,
18
],
但我在序列化时仍然想要一个 unix 时间戳,就像我使用 GregorianCalendar 字段获得的那样:我该如何实现?我可以避免使用自定义序列化器(和反序列化器)吗?
这些与资源响应和请求正文相关(如 POST、PUT 等),而不是请求参数。
Jackson ObjectMapper 配置如下:
jacksonConverter.getObjectMapper().enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
jacksonConverter.getObjectMapper().disable(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS);
【问题讨论】:
-
如果my answer 对您有帮助,请告诉我(如果没有,请告诉我原因)。
-
@TomaszLinkowski 当然我会的,只要我回到我需要的项目 :-)
标签: java spring spring-mvc jackson java-time