var sendDataList = new Array();
var map1 = new Map();
map1.set("id",1);
map1.set("sex","male");
var map2 = new Map();
map2.set("id",2);
map2.set("sex","female");
sendDataList.push(map1);
sendDataList.push(map2);
请问这种类似List<Map<String,Object>> 这种结构的js对象(就是代码中的sendDataList )要怎么发给后端呢?后端用什么参数接收?我后端用的是SpringBoot,希望各位大佬能解答一下~
网上搜了下,有一种解决方法:
//修改为这样
var sendDataList = new Array();
map1 = {};
map1["id"] = 1;
map1["sex"] = "male";
map2 = {};
map2["id"] = 2;
map2["sex"] = "female";
sendDataList.push(map1);
sendDataList.push(map2);
改成这样就可以用JSON.stringify(sendDataList)获取JSON字符串了。。。
var jsonSendDataList = JSON.stringify(sendDataList);
有没有大佬知道为什么这种方式可以,原题方式就不行?
// 首先定义一个Map转Obj的函数
function mapToObj (map) {
var obj = {};
for (let [key, value] of map) {
obj[key] = value;
}
return obj;
}
// 创建新数组
const objArr = sendDataList.map(tem=>mapToObj(tem));
然后吧objArr直接传给后端就可以了
后端直接用 @requestbody接受
转成json字符串,String 接收,JSON.parse(string) 可以考虑