前端(转换)
1.content-Type 为 前端的数据 可以 转换 的字符串 形式
2.特别注意 文件,图片 只有 multipart/form-data 可以转换为 字符串
3.对于日期格式的转换,前端没有日期类型只有字符串类型,所以不用考虑前端将 Date类型 转换成 字符串格式
后端(解析)
1.对于 日期字符串,如果用 Paramters解析,那么Paramters里面的类型是字符串形式的
可以拿到 这个字符串,在自己做转换
2.也可以在接受参数的model中设置@DateFormat指定所需要接受时间参数的格式。
3.如果用 json解析,那么,RequestBody会将 json字符串,按照加上@RequestBody的类中的属性类型 来解析
(对于 字符串 解析成 Date类型,默认是YYYY-MM-dd ),可以在Date类型 上加上 @DateFormat(pattern)
这样就可以 将 字符串 转换成 Date类型
4.但是 注意:pattern的 范围 必须 <= 字符串的范围
例如 前端传 "2001-06-08 11:22:33",后端可以用 @DateTimeFormat(pattern = "yyyy-MM-dd") 这样 后面的 11:22:33 故不进行解析,将其设置为0,结果 为Brithday: Fri Jun 08 00:00:00 CST 2001
但是 如果前端 传 "2001-06-08",后端 用"yyyy-MM-dd HH:mm:ss",那么HH:mm:ss在解析时,无法得到可以解析的数据,异常
5.总之:pattern的 范围 一定要 小于等于 日期字符串,这样可以将pattern的都解析完
6.解析的时候,要保证类型,可以转换成你想解析的类型,不会乱码
例如:date字符串,可以解析成date类型不会乱码
file字符串,可以解析成File类型 不会乱码
后端(转换)
1.这里只讨论 日期格式
2.对于日期,responseBody,可以将 对象,转换成json格式的字符串,但是对于日期,json字符串时没有日期类型的数据的
只有字符串类型的,所以 responseBody 默认 将日期类型的 转换成字符串类型
的默认 格式是 "yyyy-MM-dd"
3.如果自己想 设置自己想传的 格式 可以 用 JsonFormcat(pattern)设置
4.如果 是其他content-type 例如application/x-www-form-urlencoded(默认)
那么不能用responseBody,那么得 自己手动 response.print(日期字符串,得自己先转换后)
前端(解析)
1.前端解析 根据 dataType 来解析 字符串
2.若是json 日期,那么 前端 因为没有 日期类型,就会将字符串 保持不变,只需要整体将 json 对象 解析成 前端的对象即可
转换:只是整体转换成 某个形式
1.转换的字符串 只要满足 content-type的格式即可
2.转换 根据 某种形式,你必须按照形式,来解析成这种形式的字符串
1.例如:json形式转换,那么你的 json字符串,必须是满足json形式的,不能有日期类型,只能有字符串
日期类型数据(虽然前端没有),在转换成 json的时候,必须搞成 字符串形式
文件图片类型的,json和"key=value"中也没有,只能转换成字符串形式的,然后再整体转换成 形式
解析:将这个字符串流,进行还原,还原后,你拿着数据,可以进一步的 改成其他格式的数据类型
总结:
1.转换:先将你的数据类型,转换成符合这个 形式的,然后,转换器转换你的数据为这种 形式的字符串
2.解析:将你的字符串,以对应的形式的 解析器 解析成 你转换后的数据类型,然后你如果想你要 把 转换后的数据类型,变为最初的 数据类型,那么你可以自己转换,
前提是不乱码
|