我有一个表单,可以通过单击加号按钮添加多个表单。在其中可以单击行旁边的加号按钮添加多个行。现在,我想将此表单数据转换为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));
});
});
我已经在Google上检查了我的问题,并尝试使其如我所愿。但您无法检查以下代码。我不知道我的错在哪里。
有人可以帮助我吗?
答案 0 :(得分:0)
您应该使用for循环来创建JSON数组,而不是使用JSON.stringify()
var _json = {}
var _requests = []
var _levels = []
for(var i =0;i<requests.length ;i++){
var tempRequest ;
// tempRequest = {"sortOrder": intvalue} and bla bla bla
//sortOrder
//testSectionHeader
for(var j = 0;j<levels.length;j++){
var tempLevel;
// tempLevel = {"size":"value"} and bla bla bla
//designation
//size
//condition
//volume
//unit
//remark
//interface
_levels.push(tempLevel)
}
tempRequest.levels = _levels
_requests.push(tempRequest)
}
_json = JSON.stringify(_requests) //here you got your json
这只是一个示例,您可以根据需要进行更改
更新:
java script array length-如果您有一系列请求,则可以访问其长度arrayname.length