SpringBoot接收前端传来的json数据 |
您所在的位置:网站首页 › map作为参数 › SpringBoot接收前端传来的json数据 |
当前端传来json数据时,后端有两种方式可以接收:使用POJO和Map进行接收。 前端json数据: { id:121, //数字 name:"lhj", //字符串 scoreList:[ //对象 {Java:95}, {Python:98}, {C++:94} ] } 一、使用POJO若前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接收。 后端实体类 @Component public class Score { private int id; private String name; private List scoreList; }后端Controller @PostMapping("/student/score") public void getScore(@RequestBody Score score){ System.out.println(score); }● 前端数据和bean对象属性要一致 ● 必须使用@RequestBody注解 二、使用Map接收若前端传递过来的数据很复杂,没有对应的POJO与其对应,就可以用Map进行接收。 后台Controller @PostMapping("/lhj/getdata") public void getData(@RequestBody Mapmap){ System.out.println(map); }对于Map,值的类型建议设置为Object,这样可以使Map能接收各种类型的数据,如字符串、数字、数组和对象等。 使用POJO和Map接收的比较1、map的优点: ● 灵活性更强,易扩展,耦合度低; ● 代码简洁; ● MyBatis查询的返回结果本身就是Map,效率可能会比返回JavaBean高。 2、map的缺点 ● JavaBean的数据在编译期就会对其进行校验,如果出错会直接提示。而Map的数据则需要到sql层才会进行处理检验。因此如果map的参数名称写错、参数值如果多传乱传只能到sql层才会被发现。 ● Map中所拥有的参数个数、类型、每个参数代表的含义对外不透明,团队开发及后期维护难度大 3、JavaBean的优点: ● 面向对象的良好诠释; ● 数据结构清晰,便于团队开发和后期维护; ● 代码足够健壮,可以排除掉编译期错误; 4、javabean的缺点: ● 代码量增多,大量时间去封装用到的表对象。 ● 可能会影响开发效率。 三、PO和VO相结合● 创建PO与数据库字段对应,用于对数据库的操作; ● 创建VO用于封装和前端打交道的数据,使用VO可以避免使用Map |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |