持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情
为实现浏览器与控制器类之间的 JSON 数据交互,Spring MVC 提供了 MappingJackson2HttpMessageConverter 实现类默认处理 JSON 格式请求响应。该实现类利用 Jackson 开源包读写 JSON 数据,将 Java 对象转换为 JSON 对象和 XML 文档,同时也可以将 JSON 对象和 XML 文档转换为 Java 对象。
在使用注解开发时需要用到两个重要的 JSON 格式转换注解,分别是 @RequestBody 和 @ResponseBody。
- @RequestBody:用于将请求体中的数据绑定到方法的形参中,该注解应用在方法的形参上。
- @ResponseBody:用于直接返回 return 对象,该注解应用在方法上。
1、引入jackson
项目依赖于: jackson-annotations-2.12.0.jar jackson-core-2.12.0.jar jackson-databind-2.12.0.jar
在pom.xml文件中只需要加入下面的依赖 其它两个会自动下载
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.0</version>
</dependency>
2、编写POJO
public class Good {
String name;
double price;
int num;
....省略geter/seter方法
}
3、编写Controller
3.1、javabean接收
@Controller
public class GoodController {
@RequestMapping(value = "/good/save.do",method={RequestMethod.POST})
@ResponseBody
public Good save(@RequestBody Good good){
System.out.println(good.toString());
return good;
}
}
3.2、Map接收
@RequestMapping(value = "/good/save.do",method={RequestMethod.POST})
@ResponseBody
public Map test (@RequestBody Map map){
Set<Map.Entry<String, Object>> set=map.entrySet();;
Iterator<Map.Entry<String, Object>> it=set.iterator();
while(it.hasNext()){
Map.Entry<String, Object> entry=it.next();
System.out.println(entry.getKey()+"=="+entry.getValue());
}
return map;
}
4、访问测试
4.1、设置基本请求参数
在ApiDebug中新建一个请求,设置名称、请求方法 、请求地址和请求头: contentType: application/json;charset:utf-8; 如下:
编辑
4.2 、设置请求参数,发送请求
编辑
\