如何将JSON对象转换为数组数组

时间:2017-02-05 15:28:38

标签: javascript arrays json

在我的应用程序中,我从控制器获取json结果,我想转向前端的数组数组,因此我可以使用google chart api。

目前我在我收到的字符串上使用$.parseJSON(result),所以最后我在控制台中得到了这个:

enter image description here

我想得到的是:

enter image description here

这是我在parseJSON部分之前得到的初始json字符串:

[{"rolename":"some role","perc":45.5},{"rolename":"another role","perc":36.4},{"rolename":"role three","perc":9.1},{"rolename":"role four","perc":9.1}]

有关如何实现这一目标的任何提示?

2 个答案:

答案 0 :(得分:2)

ES6(很酷的东西):

var json=[{"rolename":"some role","perc":45.5},{"rolename":"another role","perc":36.4},{"rolename":"role three","perc":9.1},{"rolename":"role four","perc":9.1}];

var answer=json.map(el=>Object.values(el));

工作:http://jsbin.com/pejucoriqu/edit?console

ES5(与很多浏览器兼容):

var answer=json.map(function(el){
  var arr=[];
  for(var key in el){
    arr.push(el[key]);
  }
  return arr;
});

你有一个对象数组,而且你想要一个数组数组。因此,获取每个元素并使用对象的值映射它。

答案 1 :(得分:1)

您可以使用map将对象更改为数组,也可以使用Object.keysmap仅返回对象值。

var data = [{"rolename":"some role","perc":45.5},{"rolename":"another role","perc":36.4},{"rolename":"role three","perc":9.1},{"rolename":"role four","perc":9.1}]

var result = data.map(function(e) {
  return Object.keys(e).map(function(k) {
    return e[k]
  })
})
console.log(result)

或者使用ES6,您可以使用此类箭头功能

var result = data.map(e => Object.keys(e).map(k => e[k]))