[英]How to send array of arrays as data in ajax
我有一个这样的数组
var data = ["id","userId",[{item:[1,2]},{item:[1,2]}]]
目前我将这些数据发送为
var data = ["id","userId","[{\"item\":[\"1\",\"2\"]},{\"item\":[\"1\",\"2\"]}"]]
by using JSON.stringify()
现在,当我收到用于解析的数据时,我必须将其拆分为 [{,}],然后拆分为 },以在数组元素上运行 for 循环
vars args = args[2].toString().split("[{")[1].split("}]")[0];
args = '{' +args;
var list = args.split("},");
list.forEach((elem)=>{
elem = elem + '}';
elem = JSON.parse(elem);
var items = elem.item;
});
否则使用 JSON.parse() 时我会收到意外的令牌错误。我尝试使用 JSON.stringify() 然后解析它,但我得到了同样的错误。
我如何在服务器端正确解析这些数据?
我认为你可以更好地格式化你的数据,所以它是一个有效的 JSON。 例子:
{
"id": "userId",
"data": [
{
"item": [1,2]
},
{
"item": [1,2]
}
]
}
如果你真的想发送一个字符串化的数组而不是原始数组JSON.stringify是要走的路。
您的代码将如下所示:
const data = ["id", "userId", [{item: [1, 2]}, {item: [1, 2]}]]; // check for each item in data if its an array and convert it to a JSON string data.forEach((d, i) => { if (Array.isArray(d)) { data[i] = JSON.stringify(d); } }); console.log(data);
这将是一个更可持续的解决方案,因为脚本会检查并转换列表中的每个项目。 因此,如果将来列表发生变化,此脚本仍会成功转换它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.