1. 程式人生 > >springmvc接收復雜型別的json資料需要注意的地方

springmvc接收復雜型別的json資料需要注意的地方

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,要不然後端會報錯,無法轉換。