项目中遇到个批处理,需要前台传递一个json格式对象数组,如下:
var data={
"wos":[{"id":1,"satisfaction":10,"satisfactionRemark":""},
{"id":2,"satisfaction":20,"satisfactionRemark":""},
{"id":3,"satisfaction":30,"satisfactionRemark":""}]
};
我用的是jQuery.ajax的post将数据扔给controller接收
解法1:
$.ajax( { url:url, type: "POST", data: JSON.stringify(x), success: function(data){ }, dataType: "json", contentType: "application/json" } );
@RequestBody 用这个接受你的对象参数
public @ResponseBody String saveDocumentBook(@RequestBody 对象 x, HttpServletRequest request)
我后来是后台先取得要传递的数组参数然后转化的,(T[])JSONArray.toArray(JSONArray.fromObject(wosStr), T.class);T是要转换成的类型
解法2:
前台ajax传参数的时候转好json,后台用 @RquestBody List wos 来接就可以了
$.ajax({ url : url, type : "POST", contentType: "application/json; charset=utf-8", datatype:"json", data : $.toJSON(data), success : function(data, stats) {//...}