【发布时间】:2017-10-25 14:33:17
【问题描述】:
我目前正在通过 serializeArray() 从可重复的组表单中获取数据,并将其作为具有以下语法的对象:
group_field[0][address]:"street one"
group_field[0][number]:"10000"
group_field[0][city]:"nyc"
group_field[1][address]:"street two"
group_field[1][number]:"600"
group_field[1][city]:"washington"
group_field[2][address]:"street three"
group_field[2][number]:"34000"
group_field[2][city]:"paris"
我正在尝试将其转换为多维数组或嵌套对象结构,以根据第一个方括号之间的索引对所有字段进行分组。
想要的输出:
group_fields = [
"0": {
"address": "street one",
"number": "10000",
"city": "nyc",
},
"1": {
"address": "street two",
"number": "600",
"city": "washington",
},
"2": {
"address": "street three",
"number": "34000",
"city": "paris",
},
}
我已经尝试了几件事,我会写下我在很多不同的不成功方法后得到的最后一点:
var values = {};
var params = {};
$.each(theForm.serializeArray(), function(i, field) {
values[field.name] = decodeURIComponent(field.value);
});
for (var key in values){
if (values.hasOwnProperty(key)) {
var matches = key.match(/[^[\]]+(?=])/g);
if(matches != null && matches.length > 0) {
var index = matches[0];
var theKey = matches[1];
var theVal = values[key];
var single = {
[theKey]: theVal,
}
params[matches[0]].push(single);
}
}
}
这显然行不通。
任何帮助表示赞赏
【问题讨论】:
-
为什么不将表单中的数据作为 JSON 处理,然后序列化呢?一个想法。
-
顶部的块与
serializeArray返回的不同。请使用表单的 HTML 更新问题。 -
JSON.parse(JSON.stringify(obj)) 请试试这个
-
@FerhatBAŞ:那一点帮助都没有。
标签: javascript object serialization