springmvc接收复杂类型的json数据需要注意的地方

来源:互联网 发布:快压软件官方下载 编辑:程序博客网 时间:2024/06/05 17:52

1.如果接收的是普通的数据类型或者单对象

后端的方法上面什么也不需要处理,只需要将对象放入到参数上面就可以了

2.如果接收的是复杂类型
  例如对象里面还包含对象或者是集合等,后端的方法参数上面只需要加上@RequestBody即可,但是还没有完,前端传递的时候需要加上contentType:application/json
好了,栗子来了:
实体类:
public class SignUpSave {    private Integer taskID;    private Integer skillID;    List<SignUpSave.Data> equipment = new ArrayList<SignUpSave.Data>();    /*...*/    public static class Data{        private Integer equipmentDetailID;        private Integer qty;        /*...*/    }}
Controller的方法:
public SignUpResult SignUp(HttpServletRequest request,@RequestBody SignUpSave signUpSave) throws Exception{    /*...*/    return signUpResult;}
前端发送的数据:
var test = {    "TaskID": "1",    "SkillID": "1",    "Equipment": [        {            "EquipmentDetailID": "1",            "Qty": "1"        }    ]};
$.ajax({    type: "POST",    url:"...",    contentType: "application/json",    data: JSON.stringify(test),    dataType: "json",    success:function(res){        console.log(res)    }})
测试结果看下面图片
总结
  接收复杂类型的时候一定要加上contentType:application/json,要不然后端会报错,无法转换。