用于d3.js的json字符串操作

时间:2016-08-26 22:51:17

标签: javascript json d3.js

所以我有两个问题之一。如何在javascript中操作JSON字符串数据结构,以便从

[  
   {  
      "Name":"A170",
      "Values":{  
         "Level 1":1,
         "Level 2":22,
         "Level 3":22,
         "Level 4":1
      }
   },
   {  
      "Name":"A220",
      "Values":{  
         "Level 1":2,
         "Level 2":1,
         "Level 3":1,
         "Level 4":1
      }
   }
]

我得到这个结构了吗?

[  
   {  
      "Name":"A170",
      "Level 1":1,
      "Level 2":22,
      "Level 3":22,
      "Level 4":1
   },
   {  
      "Name":"A220",
      "Level 1":2,
      "Level 2":1,
      "Level 3":1,
      "Level 4":1
   }
]

或者我的另一个问题是如何修改d3分组数据图表代码以使其与第一个数据结构一起使用。到目前为止,这是我可以使用的第二个(所需)数据结构:http://jsbin.com/tutigaxevo/edit?js,output所有帮助都表示赞赏。我不是一个JS家伙。

1 个答案:

答案 0 :(得分:1)

可以通过这种方式操作JSON字符串数据结构。



var myJson = [  
   {  
      "Name":"A170",
      "Values":{  
         "Level 1":1,
         "Level 2":22,
         "Level 3":22,
         "Level 4":1
      }
   },
   {  
      "Name":"A220",
      "Values":{  
         "Level 1":2,
         "Level 2":1,
         "Level 3":1,
         "Level 4":1
      }
   }
];

myJson = myJson.map(function(value) {
var tempObj = value;
  Object.keys(value).forEach(function(key){
      if (typeof value[key] === 'object') {
        Object.keys(value[key]).forEach(function(val) {
          tempObj[val] = value[key][val];
        });
        delete tempObj[key];
      }
  })
return tempObj;
});

console.log(myJson);