@RequestBody接收复杂一些的JSON数据
现在前端要向后端传一段application/json类型的JSON格式数据,
{
"name": "研发部",
"addr": "北京",
"users": [
{
"name": "地瓜",
"age": 18
},
{
"name": "土豆",
"age": 20
}
]
}
SpringMVC可以@RequestBody进行接收,
根据分析得出,这是要接收一个部门的信息,部门里面有多个人,为其设计对应的JAVA实体:
public class Dept {
private String name;
private String addr;
private List<User> users;
/* Get/Set方法此处省略... */
}
public class User {
private String name;
private int age;
/* Get/Set省略... */
}
使用@RequestBody接收:
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/test")
public Object test2(@RequestBody Dept dept) {
System.out.println("部门名称:"+dept.getName());
System.out.println("部门地址:"+dept.getAddr());
dept.getUsers().forEach(u->{
System.out.println("---------------");
System.out.println("成员姓名:"+u.getName());
System.out.println("成员年龄:"+u.getAge());
});
return dept;
}
}
这样在访问时就可以在控制台输出结果:
部门名称:研发部
部门地址:北京
---------------
成员姓名:地瓜
成员年龄:18
---------------
成员姓名:土豆
成员年龄:20
由此可以看到,客户端传来的JSON字符串,已经变成了Java对象,自动解析已经成功。