如何处理JSON数据?

时间:2015-01-29 10:43:58

标签: javascript arrays json object

好的,我有来自JSON的数据。这些数据的结构如下所示:

enter image description here

如您所见,此数据包含一个包含名称,类型和值的数组。我需要做的是转换以某种方式使用此功能:

https://developers.google.com/chart/interactive/docs/reference#google.visualization.arraytodatatable

此功能需要以这种格式提供数据:

['Country', 'Population', 'Area'],
['CN', 1324, 9640821],
['IN', 1133, 3287263],
['US', 304, 9629091],
['ID', 232, 1904569],
['BR', 187, 8514877]

所以在我的情况下会是:

[name, type, value]
data iself

任何帮助?

3 个答案:

答案 0 :(得分:1)

您可以使用Array.prototype.map将项目数组转换为已修改项目的数组。

在你的例子中,这可能就是这些。

var flattened = object.data.map( function( item ){
      return [ item[0].name, item[0].type, item[0].value ];
});

答案 1 :(得分:1)

这应该可以解决问题:

var result = data.map(function(item){
    var i = item[0];
    return [i.name, i.type, i.value];
}); // Map the data from objects to the require arrays.
result.unshift(['Country', 'Population', 'Area']); // Add the description row.

首先将源数据中的所有数据映射到[name, type, value]数组中的result个项目,然后添加"描述"数组到结果的前面。

答案 2 :(得分:1)

你去吧。懒惰的程序员服务。

// obj is your original json
var newdata = [];
for(var i=0;i<obj.data.length;i++)
  newdata.push([obj.data[i][0].name,obj.data[i][0].type,obj.data[i][0].value]);
newdata.unshift(['Country', 'Population', 'Area']);