javascript - 将数据形成json格式
问题描述
我有一个表单,我可以通过单击加号按钮添加多个表单。在该表单中,我可以通过单击行旁边的加号按钮添加多行。现在我想把这个表单数据转换成 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));
});
});
我已经在谷歌上检查了我的问题并尝试让它像我想要的那样。但不可能你可以检查我的下面的代码。我不知道我的错在哪里。
有没有人可以帮助我?
解决方案
而不是使用JSON.stringify()
你应该使用 for 循环来创建你的 JSON 数组
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脚本数组长度- 如果你有一个请求数组,你可以访问它的长度arrayname.length
推荐阅读
- php - 如何在多用户网站中使用准备好的语句?
- reactjs - 在 Cypress-cucumber-typescript 中不能有 tsconfig.json 用于 React
- lerna - Lerna 没有为每个包生成 package-lock.json
- php - 每个设备的 Laravel 缓存
- python - 有没有办法将 BinaryFile(.wav) 转换为 Python3 中的类文件对象 - Flask
- java - 无法编译 Java 13 和 Groovy 2.5.8
- javascript - 验证器 - 不显眼的表单重置不起作用
- java - viewpager2 中的无限滚动
- airflow - 气流 - 如何跳过第二天的实例?
- python - python - 如何使用 map reduce MRJob