将一个javascript嵌套对象数据结构转换为嵌套数组

Mic*_*ier 5 javascript jquery json loops object

我试图在Javascript对象文字中转换JSON字符串.我认为有可能有一些循环,但我无法完成它.目标结构如下所示,"chartData".

小提琴可以在这里找到:http://jsbin.com/ajemih/13/edit

这是JSON数据:

{
   "1b":{
      "allLoad":"130",
      "loadMovement":"111",
      "allMovement":"111"
   },
   "1a":{
      "allLoad":"910",
      "loadMovement":"671",
      "allMovement":"280"
   },
   "systemLoad":"963"
}
Run Code Online (Sandbox Code Playgroud)

这应该在转换后看起来像:

chartData = [[['loadMovement', 111], 
              ['allMovement', 120], 
              ['allLoad', 130]], 
             [['Load+Move', 671], 
              ['allMovement', 280], 
              ['allLoad', 910]]];
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 8

我认为这会奏效:

工作演示:http://jsfiddle.net/jfriend00/YmjDR/

var data = {
   "1b":{
      "allLoad":"130",
      "loadMovement":"111",
      "allMovement":"111"
   },
   "1a":{
      "allLoad":"910",
      "loadMovement":"671",
      "allMovement":"280"
   },
   "systemLoad":"963"
};

var chartData = [];

for (var i in data) {
    var item = data[i];
    var outer = [];
    // skip over items in the outer object that aren't nested objects themselves
    if (typeof item === "object") {
        for (var j in item) {
            var temp = [];
            temp.push(j);
            temp.push(item[j]);
            outer.push(temp);
        }
    }
    if (outer.length) {
        chartData.push(outer);
    }
}
Run Code Online (Sandbox Code Playgroud)