Javascript 如何将JSON结构转换为数组数组?

Javascript 如何将JSON结构转换为数组数组?,javascript,arrays,angular,charts,angular6,Javascript,Arrays,Angular,Charts,Angular6,我有一个json响应,如下所示 [ { "Value":"80,120" }, { "value2":"117,120" }, { "value3":"105,111" }, { "value4":"40,77" }, { "value5":"27,44" } ] 如何将这个json结构形成一个表来动态地绘制条形图?现在我静态地提到这里的值 function drawChart() { var data = goog

我有一个json响应,如下所示

[  
 {  
   "Value":"80,120"
 },
 {  
   "value2":"117,120"
 },
 {  
   "value3":"105,111"
 },
 {  
   "value4":"40,77"
 },
 {  
   "value5":"27,44"
 }
]
如何将这个json结构形成一个表来动态地绘制条形图?现在我静态地提到这里的值

function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['value', '80', '120'],
    ['value1', '70', '300'],
    ['value2', '90', '400'],
    ['value3', '100', '230']
  ]);

下面的一个衬里将使用、、和:

以下是完整的片段:

const json=[{
“值”:“80120”
},
{
“值2”:“117120”
},
{
“值3”:“105111”
},
{
“值4”:“40,77”
},
{
“值5”:“27,44”
}];
const data=json.map(e=>([[k,v]]=Object.entries(e),[k,…v.split(',')));

控制台日志(数据)下面的一行程序将使用、和执行此操作:

以下是完整的片段:

const json=[{
“值”:“80120”
},
{
“值2”:“117120”
},
{
“值3”:“105111”
},
{
“值4”:“40,77”
},
{
“值5”:“27,44”
}];
const data=json.map(e=>([[k,v]]=Object.entries(e),[k,…v.split(',')));

控制台日志(数据)您可以使用和的组合,如下所示:

const data = json.map(function(a) {
  return [...Object.keys(a), ...Object.values(a)[0].split(",")];
});
演示:

const json=[{
“值”:“80120”
},
{
“值2”:“117120”
},
{
“值3”:“105111”
},
{
“值4”:“40,77”
},
{
“值5”:“27,44”
}
];
const data=json.map(函数(a){
返回[…Object.keys(a),…Object.values(a)[0]。拆分(“,”)]
});

控制台日志(数据)您可以使用和的组合,如下所示:

const data = json.map(function(a) {
  return [...Object.keys(a), ...Object.values(a)[0].split(",")];
});
演示:

const json=[{
“值”:“80120”
},
{
“值2”:“117120”
},
{
“值3”:“105111”
},
{
“值4”:“40,77”
},
{
“值5”:“27,44”
}
];
const data=json.map(函数(a){
返回[…Object.keys(a),…Object.values(a)[0]。拆分(“,”)]
});

控制台日志(数据)如果您计划用这些数据绘制谷歌图表,
您需要将值从字符串转换为数字

['value', '80', '120'],

['value', 80, 120],
否则,您将收到以下错误

轴0的数据列不能是字符串类型


您可以使用其他答案中建议的
map
方法,
使用
parseFloat
parseInt
将字符串转换为数字

以下将起作用

var dataObj=[
{
“值”:“80120”
},
{
“值2”:“117120”
},
{
“值3”:“105111”
},
{
“值4”:“40,77”
},
{
“值5”:“27,44”
}
];
var dataArray=dataObj.map(函数(行){
var keys=Object.keys(行);
变量值=行[键[0]]。拆分(',');
返回[keys[0]、parseFloat(值[0])、parseFloat(值[1]);
});

log(JSON.stringify(dataArray))如果您计划用这些数据绘制谷歌图表,
您需要将值从字符串转换为数字

['value', '80', '120'],

['value', 80, 120],
否则,您将收到以下错误

轴0的数据列不能是字符串类型


您可以使用其他答案中建议的
map
方法,
使用
parseFloat
parseInt
将字符串转换为数字

以下将起作用

var dataObj=[
{
“值”:“80120”
},
{
“值2”:“117120”
},
{
“值3”:“105111”
},
{
“值4”:“40,77”
},
{
“值5”:“27,44”
}
];
var dataArray=dataObj.map(函数(行){
var keys=Object.keys(行);
变量值=行[键[0]]。拆分(',');
返回[keys[0]、parseFloat(值[0])、parseFloat(值[1]);
});

log(JSON.stringify(dataArray))非常感谢您的详细解释和代码。你是救命恩人!非常感谢@怀特:非常感谢您的详细解释和代码。你是救命恩人!非常感谢@白帽