后端接口如何接受对象数组
方式一:直接使用字符串接受
后端代码:
@PostMapping("/addCommodityBatch")
public String addCommodityBatch( String commodityIncludeCountBeansJsonString){
List<CommodityIncludeCountBean> list = JSON.parseArray(commodityIncludeCountBeansJsonString,CommodityIncludeCountBean.class);
return "";
}
这里接受的json字符串,然后利用alibaba的JSON工具可以直接想字符串转化为我们想要的list集合。
前端代码
function addCommodityByBatch(array) {
$.ajax({
url:"/commodity/addCommodityBatch",
type:"post",
data:{'commodityIncludeCountBeans':JSON.stringify(array)},
// data:"commodityIncludeCountBeansJsonString="+JSON.stringify(array),//和上面的一样都是可以的!
async:false,
contentType:'application/x-www-form-urlencoded',//默认的数据格式,可以省略!
success:function (respData) {
if(respData.resultCode == 1){
layer.msg("入库成功!")
}else {
layer.msg("入库失败!",{icon:5})
}
}
})
}
数据格式
这样就相当于前端把数组先转化为json字符串,然后后端接受到字符串后在解析成对应的对象数组!
方式二:使用数组接受(集合也可以)
只需要注意三个地方:①后端参数前加上@requestBody注解。②前端设置传递数据格式为application/json。③前端直接传JSON.stringify(xx)参数。
后端代码:
@PostMapping("/addCommodityBatch")
public String addCommodityBatch(@RequestBody CommodityIncludeCountBean[] commodityIncludeCountBeans){
// List<CommodityIncludeCountBean> list = JSON.parseArray(commodityIncludeCountBeans,CommodityIncludeCountBean.class);
List<CommodityIncludeCountBean> list = new ArrayList<CommodityIncludeCountBean>();
Collections.addAll(list,commodityIncludeCountBeans);//
return "";
}
只需要加上@requestBody注解,这里就会自动将接受的json字符串转化为我们规定数组!
前端代码
//将购物车中的商品添加到库中
function addCommodityByBatch(array) {
$.ajax({
url:"/commodity/addCommodityBatch",
type:"post",
// data:{'commodityIncludeCountBeans':JSON.stringify(array)},
// data:"commodityIncludeCountBeansJsonString="+JSON.stringify(array),
data:JSON.stringify(array),
async:false,
contentType:'application/json;charset=utf-8',
success:function (respData) {
if(respData.resultCode == 1){
layer.msg("入库成功!")
}else {
layer.msg("入库失败!",{icon:5})
}
}
})
}