本文实例讲述了javascript实现构造json数组的方法。分享给大家供大家参考,具体如下:
从后端拿到的数据是一个数组,每个元素中包含的数据如下(host相同的记录都是相邻的)
currenttime:"1470729601"
host:"10.3.34.21"
tasklist:null
tasknum:1
想构造类似如下结构的json数组
[{ name: 'host:10.1.6.49', data: [ [1470641461000, 5], [1470642581000, 4], [1470643701000, 2], [1470647341000, 3] ] }, { name: 'host:10.3.34.18', data: [ [1470641461000, 2], [1470642581000, 2], [1470643701000, 1], [1470647341000, 4] ] }, { name: 'host:10.2.2.22', data: [ [1470641461000, 3], [1470642581000, 2], [1470643701000, 6], [1470647341000, 4] ] },{ name: 'host:10.1.110.96', data: [ [1470641461000, 1], [1470642581000, 8], [1470643701000, 1], [1470647341000, 1] ] },{ name: 'host:10.2.2.87', data: [ [1470641461000, 7], [1470642581000, 3], [1470643701000, 6], [1470647341000, 5] ] }]
错误的方式:
var backenddata = data.result; var resultlist = new array(); var curhost = ""; var onehostdatalist = new array(); for (var i in backenddata) { var host = backenddata[i].host; if (host != curhost) { if(i != 0) { var item = new object(); item.name = curhost; item.data = onehostdatalist; resultlist.push(item); } onehostdatalist = new array(); curhost = host; } else { var dot = new array(); dot.push(backenddata[i].currenttime * 1000); dot.push(backenddata[i].tasknum); onehostdatalist.push(dot); } } var item = new object(); item.name = curhost; item.data = onehostdatalist; resultlist.push(item); $scope.data = json.stringify(resultlist);
以上方式的问题在于转换后会使得name和host和带上引号,正确的方式如下:
var backenddata = data.result; var resultlist = []; var curhost = ""; var onehostdatalist = new array(); for (var i in backenddata) { var host = backenddata[i].host; if (host != curhost) { if(i != 0) { var item = { name: curhost, data: onehostdatalist }; resultlist.push(item); } onehostdatalist = new array(); curhost = host; } else { var dot = new array(); dot.push(backenddata[i].currenttime * 1000); dot.push(backenddata[i].tasknum); onehostdatalist.push(dot); } } var item = new object(); item.name = curhost; item.data = onehostdatalist; resultlist.push(item); $scope.data = resultlist;
ps:这里再为大家推荐几款相关的json在线工具供大家参考:
在线json代码检验、检验、美化、格式化工具:
json在线格式化工具:
在线xml/json互相转换工具:
json代码在线格式化/美化/压缩/编辑/转换工具:
在线json压缩/转义工具:
更多关于javascript相关内容可查看本站专题:《javascript中json操作技巧总结》、《javascript查找算法技巧总结》、《javascript错误与调试技巧总结》、《javascript数据结构与算法技巧总结》、《javascript遍历算法与技巧总结》及《javascript数学运算用法总结》
希望本文所述对大家javascript程序设计有所帮助。
如对本文有疑问, 点击进行留言回复!!
vuejs (2)- Vue 生命周期 和 VueJS ajax
vue axios blob下载文件,文件下载失败将blob的错误信息转换成json格式
网友评论