关于 spring MVC 的 @RequestBody 接收 json, Date 类无法转换的问题

2017-04-06 08:42:52 +08:00
 wly19960911
基于刚刚学习,不懂相关的知识,也搜不到有用的资料,希望请教一下大家。

我在尝试使用 spring MVC 的时候,使用 controller 去接受一个 json 并且转换成一个 model ,但是现在有个问题,我在使用 @RequestBody 的时候,如果 model 里面的数据有 Date ,就开始无法转换并且报 415 的错误。

我尝试在 model 里面使用 @DatetimeFormat 去格式化 Date 数据,但是无果。

所以我想请教大家如何接收这样的数据,给个相关的参考或者简单解释做法就好。
8524 次点击
所在节点    Java
24 条回复
cs4814751
2017-04-06 09:45:23 +08:00
@wly19960911 @admin9527 我看岔了 是要反序列化 initbinder 好用 脑抽了以为是序列化
wly19960911
2017-04-06 09:54:06 +08:00
@admin9527
使用表单的话我是测试过可以正常接收,我突然发现自己有点脑抽为什么要用 json 接收 Date ,不过趁机了解这个不会有坏处, get 和 post 方法在 model 使用 @DatetimeFormat 和 controller 上使用 @ModelAttribute 能接收到。
hiro0729
2017-04-06 10:03:47 +08:00
spring mvc 默认用的是 jackson 来解析 json 的,所以 Date 的解析得下面这么用

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date lastupdatetime;
jelinet
2017-04-06 13:29:09 +08:00
同意 timeInMillis long 类型。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/352828

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX