如何解决从jQuery中的两个不同数组以json格式绑定
我想将从网站获得的json数据绑定为以下json格式:
{
"siteList": [
{
"siteName": "Site1","deviceList": [
{
"deviceName": "S1device1"
},{
"deviceName": "S1device2"
}
]
},{
"siteName": "Site2","deviceList": [
{
"deviceName": "S2device1"
},{
"deviceName": "S2device2"
}
]
}
]
}
我已将站点名称和设备名称存储在两个不同的数组中,请帮助我将所有这些内容绑定为上面给出的格式。
我用来存储数据的jQuery代码:
$(document).ready(function() {
$("input:checkBox[name=check]:checked").each(function(){
var id=$(this).attr('id');
var site_data = $(this).closest('tr').find('#site').val();
var device_data = $(this).closest('tr').find('#device').val();
site_checks.push(site_data);
device_checks.push(device_data);
});
var site_check_length = site_checks.length;
var device_check_length = device_checks.length;
var site_data_list = [];
for(var site = 0 ; site < site_check_length ; site++){
var sites_checked = {};
var device_checked = {};
sites_checked['siteName'] = site_checks[site];
sites_checked['deviceName'] = device_checks[site];
site_data_list.push(sites_checked);
}
console.log(site_data_list);
});
});
(2) [{…},{…}]
0: {siteName: "Site1",deviceName: "S1device1"}
1: {siteName: "Site2",deviceName: "S2device1"}
长度:2 这种输出即将到来,但我必须以上述给定的json格式将其绑定 帮助!!!
解决方法
在提供的成功函数中,可以相应地解析数据。这是如何执行此操作的示例。 JSON.stringify
将使用数据数组为您创建一个JSON字符串。
let siteList = [];
let siteListItem = [];
siteListItem.siteName = "Site1";
siteListItem.deviceList = [];
// Create new device
let device_details = [];
device_details.deviceName = 'S1Device';
// Push device to deviceList
siteListItem.deviceList.push(device_details);
// Push new site to siteList
siteList.push(siteListItem);
// Create a JSON String out of all the changes we've made
console.log(JSON.stringify(siteList));
尽管这似乎是一个合适的解决方案,但是通常最好找到站点所有者提供的API,或者创建自己的API来通过PHP,Python或您使用的任何语言在后端解析数据。
这将确保您可以在多个客户端之间修改数据,而不必每次都要重新构造JSON字符串时都需要调整本地代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。