springmvc接收復雜型別的json資料需要注意的地方
阿新 • • 發佈:2019-02-08
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,要不然後端會報錯,無法轉換。