一、前后端数据交互格式要求
1.springboot http请求参数处理
请求方式
- GET:用于查询
- POST:用于插入
- application/x-www-form-urlencoded:浏览器原生
- multipart/form-data:表单上传文件
- application/json:json字符串
- text/xml:xml格式
- PUT:用于更新
- DELETE:用于删除
第一类请求路径参数注解
- @PathVaribale:获取url中的数据 url/{id}
- @RequetParam:获取请求参数的值 url?name=
第二类Body参数注解(没有大小限制)
- @RequestBody:利用一个对象去获取前端传过来的数据(获取Body参数)
- 技巧
前端:
api=>
headers:{'Content-Type':'application/json'},
method:'post',
data:data
后端:POST 请求
@RequestBody Map<String,Object> map
后端用map接收注意linkedhashmap错误:
解决方案:
将map转成json,在转成对象(这种方式比较简单,很多json工具方法都有)
反序列化成对象
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
List<XXX> list1 = (List<XXX>) map.get("list");
ObjectMapper mapper = new ObjectMapper();
List<XXX> list = mapper.convertValue(list1, new TypeReference<List<XXX>>() { });
万能JSON字符串穿透前后端(有大小限制)
【后端接收json字符串的时候使用(@RequestBody String data) String类型,然后用JSONObject转换成对应的实体类 给逻辑层去处理。 前端请求头里设置了传给后端的数据类型是application/json,JSON.stringify()把待传数据转成JSON字符串发给后端。】