当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JavaScript实现构造json数组的方法分析

JavaScript实现构造json数组的方法分析

2018年09月26日  | 移动技术网IT编程  | 我要评论

本文实例讲述了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程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网