SpringMVC-JSON数据传输参数
SpringMVC-JSON数据传输参数
CAMELLIAJSON数据传输参数
现在比较流行的开发方式为异步调用。前后台以异步方式进行交换,传输的数据使用的是==JSON==,所以前端如果发送的是JSON数据,后端该如何接收?
对于JSON数据类型,我们常见的有三种:
- json普通数组([“value1”,”value2”,”value3”,…])
- json对象({key1:value1,key2:value2,…})
- json对象数组([{key1:value1,…},{key2:value2,…}])
对于上述数据,前端如何发送,后端如何接收?
1. JSON普通数组
步骤1:pom.xml添加依赖
SpringMVC默认使用的是jackson来处理json的转换,所以需要在pom.xml添加jackson依赖
1 | <dependency> |
除了jackson还可以用gson等。
步骤2:PostMan发送JSON数据
步骤3:开启SpringMVC注解支持
在SpringMVC的配置类中开启SpringMVC的注解支持,这里面就包含了将JSON转换成对象的功能。
- @EnableWebMvc :开启json数据类型自动转换。
1 |
|
步骤4:参数前添加@RequestBody
1 | //使用@RequestBody注解将外部传递的json数组数据映射到形参的集合对象中作为数据 |
2. JSON对象数据
请求和数据的发送:
1 | { |
后端接收数据:
1 |
|
启动程序访问测试
说明:
address为null的原因是前端没有传递数据给后端。
如果想要address也有数据,我们需求修改前端传递的数据内容:
1 | { |
再次发送请求,就能看到address中的数据
3. JSON对象数组
集合中保存多个POJO该如何实现?
请求和数据的发送:
1 | [ |
后端接收数据:
1 |
|
启动程序访问测试
4. 总结
知识点1:@EnableWebMvc
名称 | @EnableWebMvc |
---|---|
类型 | ==配置类注解== |
位置 | SpringMVC配置类定义上方 |
作用 | 开启SpringMVC多项辅助功能 |
[!Tip]
提供将JSON转换成对象的功能
知识点2:@RequestBody
名称 | @RequestBody |
---|---|
类型 | ==形参注解== |
位置 | SpringMVC控制器方法形参定义前面 |
作用 | 将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次。 |
@RequestBody与@RequestParam区别
区别
- @RequestParam用于接收url地址传参,表单传参【application/x-www-form-urlencoded】
- @RequestBody用于接收json数据【application/json】
应用
- 只用涉及JSON请求格式数据才用@RequestBody
- 如果发送非json格式数据,选用@RequestParam接收请求参数