我有一个字符串:

"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/

10-10 14:44