Javascript 将数据格式化为json格式
我有一个表单,我可以通过点击加号按钮来添加多个表单。在这个表单中,我可以通过点击行旁边的加号按钮来添加多行。现在我想把这个表单数据转换成json格式。我以数组形式给出表单输入名称,如下所示Javascript 将数据格式化为json格式,javascript,jquery,json,forms,Javascript,Jquery,Json,Forms,我有一个表单,我可以通过点击加号按钮来添加多个表单。在这个表单中,我可以通过点击行旁边的加号按钮来添加多行。现在我想把这个表单数据转换成json格式。我以数组形式给出表单输入名称,如下所示 name="request[0]['testSectionHeader']" name="request[0]['sortOrder']" 下面是我的表格 所以当我点击保存按钮时,它并没有给我正确的结果 我接下来的结果是 { "request[0]['testSectionHeader']":"test
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));
});
});
我已经在谷歌上查询了我的问题,并试图让它成为我想要的。但不可能,你可以检查我下面的代码。我不知道哪里是我的错
有人可以帮我吗?您应该使用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
var\u json={}
var\u请求=[]
变量_级别=[]
对于(var i=0;i………..可能是重复的否,我已经检查了此链接,但我没有任何解决方案,您可以检查我的代码。这是一个简单的操作数据的情况。没有神奇的调用会将您的数组变成随机对象,您只需自己编写代码。尝试一下,这真的不是很难。以下是a我试了很多次,但我没有得到我想要的。你能帮我吗?我需要在代码中更改什么?谢谢你的回复。让我这样尝试。你能解释更多吗?比如requests.length我怎么能得到它?实际上我是jquery新手,所以它是纯JavaScript的,我没有在代码中使用任何jquery,我更新了我的答案,它很简单你有两个数组请求和级别,你需要从它们创建一个json,据我所知,在请求内部需要级别,你需要1个用于循环请求,另一个用于循环级别并将它们添加到请求中,然后使请求数组成为json