【发布时间】:2018-12-31 10:06:04
【问题描述】:
我有一个表单,我可以通过单击加号按钮添加多个表单。在该表单中,我可以通过单击行旁边的加号按钮添加多行。现在我想把这个表单数据转换成 json 格式。我在数组中给出表单输入名称,如
name="request[0]['testSectionHeader']"
name="request[0]['sortOrder']"
下面是我的表格,
所以当我点击保存按钮时,它没有给我正确的结果
我即将到来的结果是
{
"request[0]['testSectionHeader']":"test selection header",
"request[0]['sortOrder']":"1",
"request[0]['level2'][0]['testBlockHeader']":"asdf",
"request[0]['level2'][0]['sortOrder']":"1",
"request[0]['level2'][0]['level3'][0]['designation']":"Test Condition",
"request[0]['level2'][0]['level3'][0]['size']":"Test",
"request[0]['level2'][0]['level3'][0]['condition']":"=",
"request[0]['level2'][0]['level3'][0]['volume']":"23.6",
"request[0]['level2'][0]['level3'][0]['unit']":"C",
"request[0]['level2'][0]['level3'][0]['remark']":"U6",
"request[0]['level2'][0]['level3'][0]['interface']":"test interface1"
}
但我需要这样的
{
"request": [
{
"testSectionHeader": "Section Header 1",
"sortOrder": "1",
"level2": [
{
"testBlockHeader": "Section Header 1 Block1",
"sortOrder": "1",
"level3": [
{
"designation": "Software engineer",
"unit": "5",
"sortOrder": "1"
},
{
"designation": "QA Manager",
"unit": "5",
"sortOrder": "2"
}
]
}
]
},
]
}
如果我需要更改输入名称或任何需要更改的内容,请您帮助我如何创建它。这对我来说非常重要。提前致谢。
我的代码是,
$(document).ready(function(){
$('#dataform').on('submit', function(e){
e.preventDefault();
var data = {};
$("#dataform").serializeArray().map(function(x){
data[x.name] = x.value;
});
alert(JSON.stringify(data));
});
});
我已经在谷歌上检查了我的问题,并尝试按照我想要的方式进行操作。但不可能你可以检查我的下面的代码。我不知道我的错在哪里。
有没有人可以帮助我?
【问题讨论】:
-
minimal reproducible example .........
-
不,我已经检查了这个链接但我没有任何解决方案,你可以检查我的代码。
-
这是一个操作数据的简单案例。没有魔法可以将你的数组变成一个随机对象,你只需要自己编写代码。试试看,真的不是很困难。这是starting point
-
我尝试了很多次,但都没有达到我想要的效果。你能帮我么??我需要在我的代码中更改什么??
标签: javascript jquery json forms