【发布时间】:2021-06-16 01:11:18
【问题描述】:
我有一个 Spring Boot 应用程序 (2.4.1),其中一个 OffsetDateTime 字段作为浮点值从 RestController 返回。示例:
"created_at": 1616080724.531610100
我在this thread 中尝试了所有建议的解决方案。它们都不适合我。
我还尝试添加一个非常简单的端点,它只返回OffsetDateTime:
@GetMapping("/test")
public OffsetDateTime test() {
return OffsetDateTime.now();
}
结果相同,返回浮点值。
然后我在一个最小的 Spring Boot 项目中尝试了相同的端点,它按预期以 ISO 格式返回:
"2021-03-18T15:39:14.5295632+01:00"
这一切都指向了一些传递依赖,它与 Sprint Boot 使用的默认 Jackson 序列化程序发生了冲突。但是mvn dependency:tree 没有给我任何可疑的依赖项(例如,没有 gson marshaller 依赖项)。
我还尝试启用 TRACE 日志记录,我可以看到用 HttpEntityMethodProcessor 编写的对象具有正确格式的 created_at 时间:
TRACE org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor - Writing [class MyObject {
....
createdAt: 2021-03-18T16:37:34.113316500+01:00
...
但它最终仍然会在客户端浮动(在浏览器和 Postman 上进行测试)。这可能是什么问题?
【问题讨论】:
标签: json spring-boot rest serialization jackson