我有一个字符串:
"id=1&lotcode=ACB&location=A1&id=2&lotcode=CCC&location=B1"
现在,我想获得一个对象数组,通过像这样的ajax传递给控制器:
[{"id":1, "lotcode"="ACB","location":"A1"},{"id":2, "lotcode"="CCC","location":"B1"}]
我首先分割字符串
var string = data.split('&', 2);
现在我被困在这里...
最佳答案
您可以用&
分割字符串,然后获取键/值对,并将其分配给具有递增索引的数组。
此解决方案假定所有键都具有相同的计数。
var string = "id=1&lotcode=ACB&location=A1&id=2&lotcode=CCC&location=B1",
result = [],
indices = {};
string.split('&').forEach(s => {
var [key, value] = s.split('='),
index = (indices[key] || 0);
result[index] = result[index] || {};
result[index][key] = value;
indices[key] = index + 1;
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 将serialized()复杂字符串转换为对象数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56365426/