无论是RestFul风格还是我们之前web阶段接触过的异步请求,都需要把数据转换成Json放入响应体中。
数据放到响应体
我们的SpringMVC为我们提供了@ResponseBody来非常方便的把Json放到响应体中。
@ResponseBody可以加在哪些东西上面?类上和方法上
具体代码请参考范例。
数据转换成Json
SpringMVC可以把我们进行Json的转换,不过需要进行相应配置(已经配置过)。
配置
①导入jackson依赖
<!-- jackson,帮助进行json转换-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
②开启mvc的注解驱动
<mvc:annotation-driven></mvc:annotation-driven>
使用
只要把要转换的数据直接作为方法的返回值返回即可。SpringMVC会帮我们把返回值转换成json。具体代码请参考范例。
范例一
要求定义个RestFul风格的接口,该接口可以用来根据id查询用户。请求路径要求为 /response/user ,请求方式要求为GET。
而请求参数id要写在请求路径上,例如 /response/user/1 这里的1就是id。
要求获取参数id,去查询对应id的用户信息(模拟查询即可,可以选择直接new一个User对象),并且转换成json响应到响应体中。
@Controller
@RequestMapping("/response")
public class ResponseController {
@GetMapping("/user/{id}")
@ResponseBody //这方法的返回值放入响应体中
public User testResponse(@PathVariable Integer id){
User user = new User(id,null,null,null);
return user;//因为以及做过配置,所以会把返回值转换成json
}
}