Controller的请求方法的一个参数是这样的:
@RequestBody(required=true) List idList,
前端的json应该是怎样的?
这种不行:{"idList":[10,11,12]};
这种也不行:[10,11,12]
你们的回答我都看过了,事实上Controller的方法参数里不能直接是List,Map等集合,需要把他们封装在一个实体类型中,用该实体类型作为参数,如:
@RequestBody(required=true) UserIdList idList
UserIdList为实体类型,里面有个List类型的属性(假设名为ids,且有对应的getter、setter方法,前端传的json数据应该用数组(对应List):
{
"ids": [
{
"id": 15
},
{
"id": 16
}
]
}
上面UserId也为一个实体,里面只有一个Long类型的属性id,对应上面json中的id。
如果UserIdList里面的属性类型直接为List的话,json格式应该是下面这个,没试过:
{
"ids": [ 15,16 ]
}
总结:json里面的数组对应List,数组里面的元素(基本类型或json对象)对应List的元素(基本类型或实体类)
参考:
SpringMVC Controller各种参数绑定
2枚C币我就自己收了哈!多谢各位的回答!
var str = {10,11,12};
data:{"idList":str}
{"idList":{10,11,12]}},你这list<>尖括号里面有什么对应的类吗,
{"List[0]":1,"list[1]":2}
直接在后台把list 转成json 在返回给前台即可
List list = new ArrayList();
list.add("abc");
list.add("123");
//list转成json
String json =JSONArray.fromObject(list).toString();
System.out.println(json);
//运行:["abc","123"]