首页 > 编程知识 正文

springmvc接收json,springmvc返回json

时间:2023-05-04 06:44:39 阅读:146941 作者:2433

背景真的使用了正确的@DateTimeFormat和@JsonFormat吗? 90%的人相信不知道差异和本文阐述的详细内容

本文基于springboot 2.3.7.RELEASE版本

结论花两分钟看结论,其他有时间可以选择看。

传递非JSON (例如,键值对x-www-form-urlencoded或form-data ) ) ) ) ) ) ) )。

必须使用@ datetime format (pattern=' yyyy-mm-ddhh : mm : ss ' ) )才能转换。 具体格式可以自己修改

非JSON包括:

1、Date字段直接作为rest接口参数

2、Date字段放在一个类中,作为rest接口的参与

JSON,不能使用@ datetime format (pattern=' yyyy-mm-ddhh : mm : ss ' )! 3358 www.Sina.com/@ JSON format (pattern=' yyyy-mm-ddhh 3360 mm : ss ' ) http://www.Sina.com/time zone=' GMT

也就是说,@JsonFormat将参赛Date转换为String,得用参赛String转换为Date,一般不要写上,以前称为“仅在参赛时@ JSON

是否要设置@JsonFormat的时区? 关于@ JSON format (pattern=' yyyy-mm-ddhh 3360 mm : ss ',timezone='GMT 8' )

我个人认为还是算了比较好。 加入时,将字符串格式化为8个时区。 万一APP应用程序未部署在8个时区,则存在问题。 作为参与者,面对同样的问题,将Date转换为固定时区的字符串显然不太妥当。 如果你的APP应用是全球的,那么在展示时间时,字符串最好带时区进行展示。 例如,2021-10-1511:30 [ (utc 08336000 ) Beijing ]在当前许多APP应用程序和展示的时间字符串中看不到时区。 例如,2021-10-151515 PS:datetime format没有时区设置,但JsonFormat没有!

详细的研究过程1、Date传输方式以Date为直接rest接口的参数(传输键值为x-www-form-urlencoded ) ) ) ) ) )。

@requestmapping(/date1) ) publicresponsedtodate1) @DateTimeFormat ) pattern=' yyyy-mm-ddhh 3360 mm 3360 ss ) ) datern

格式必须符合http://www.Sina.com/Pattern

例如,yyyy-MM-dd HH:mm:ss不仅不能在日期部分抽出秒,也不能将-更改为@JsonFormat中不行/。

2、传递Date的方式rest接口使用一个类,类中包含Date字段,传递的是键值对(x-www-form-urlencoded ) )。

@requestmapping(/Date2 ) ) publicresponsedtodate2) datekvdtodatedto )//中的date字段包含@ datetimeformatreturnresponsedto @ datapublicclassdatekvdto { @ datetime format (pattern=' yyyy-mm-ddhh : mm : ss ' )专用数据数据; }要进行转换,必须将@DateTimeFormat添加到要加入类的Date字段中

格式必须严格遵循pattern

@JsonFormat不行!

3、传输数据方式三rest接口使用传输JSON方式(application/json )

@postmapping(/date3) publicresponsedtodate3) requestbodydatejsondtoJSONdto ) returnresponsedto.succ ) JSON dto } @数据} date无需设置@DateTimeFormat即可顺利转换。也将

springboot的早期版本提供` yyyy-MM-dd HH:mm:ss ',但新版本的格式略有不同。 ` yyyy-MM-ddTHH:mm:ss ` (之间有t,分隔日期和时间) * )如果要传达JSON! 必须在@JsonFormat中启用!

是双向的、两用的为了控制前端给我的格式

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。