Javascript 如何将JSON结构转换为数组数组?
我有一个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
[
{
"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))代码>非常感谢您的详细解释和代码。你是救命恩人!非常感谢@怀特:非常感谢您的详细解释和代码。你是救命恩人!非常感谢@白帽