高图的多维 JSON 到 javascript 数组
Multidimensional JSON to javascript array for highcharts
以下是 Laravel 中 Response::json() 函数返回的 JSON 符号:
{
"area":["zone1","zone2","zone3"],
"target":["7.91","4.95","2.95"],
"sales":["12.35","6.99","4.13"]
}
如何使用 javascript 将 'area' 作为类别、目标和销售额作为 highcharts(列)的系列?
例如,我如何获得以下内容:
var cat=['zone1','zone2', 'zone3'];
var series1=[7.91, 4.95,2.95];
var series2=[12.35,6.99,4.13];
有几种方法可以做到这一点。如果你使用纯 javascript 你可以做类似
cat = new Array();
series1 = new Array();
series2 = new Array();
for (var value in data["area"])
{
cat.push(data["area"][value]);
}
for (var value in data["target"])
{
series1.push(data["target"][value]);
}
for (var value in data["sales"])
{
series2.push(data["sales"][value]);
}
或者,如果您想要使用 jQuery
的解决方案,那么您可以执行以下操作:
var cat = $.map(data["area"], function(value,key) { return value; });
var series1 = $.map(data["target"], function(value,key) { return value; });
var series2 = $.map(data["sales"], function(value,key) { return value; });
两种解决方案都会为您提供以下输出:
["zone1", "zone2", "zone3"]
["7.91", "4.95", "2.95"]
["12.35", "6.99", "4.13"]
编辑
所以我使用的数据与您提供的相同 JSON 对象,其中每个值都是一个字符串,但是您想要的输出(以及 Highcharts 想要的输出)是数字形式的系列数据,所以您需要考虑到这一点。
我想它能帮到你。
var data = {
"area":["zone1","zone2","zone3"],
"target":["7.91","4.95","2.95"],
"sales":["12.35","6.99","4.13"]
};
var cat = data.area;
var series1 = data.target;
var series2 = data.sales;
以下是 Laravel 中 Response::json() 函数返回的 JSON 符号:
{
"area":["zone1","zone2","zone3"],
"target":["7.91","4.95","2.95"],
"sales":["12.35","6.99","4.13"]
}
如何使用 javascript 将 'area' 作为类别、目标和销售额作为 highcharts(列)的系列?
例如,我如何获得以下内容:
var cat=['zone1','zone2', 'zone3'];
var series1=[7.91, 4.95,2.95];
var series2=[12.35,6.99,4.13];
有几种方法可以做到这一点。如果你使用纯 javascript 你可以做类似
cat = new Array();
series1 = new Array();
series2 = new Array();
for (var value in data["area"])
{
cat.push(data["area"][value]);
}
for (var value in data["target"])
{
series1.push(data["target"][value]);
}
for (var value in data["sales"])
{
series2.push(data["sales"][value]);
}
或者,如果您想要使用 jQuery
的解决方案,那么您可以执行以下操作:
var cat = $.map(data["area"], function(value,key) { return value; });
var series1 = $.map(data["target"], function(value,key) { return value; });
var series2 = $.map(data["sales"], function(value,key) { return value; });
两种解决方案都会为您提供以下输出:
["zone1", "zone2", "zone3"]
["7.91", "4.95", "2.95"]
["12.35", "6.99", "4.13"]
编辑
所以我使用的数据与您提供的相同 JSON 对象,其中每个值都是一个字符串,但是您想要的输出(以及 Highcharts 想要的输出)是数字形式的系列数据,所以您需要考虑到这一点。
我想它能帮到你。
var data = {
"area":["zone1","zone2","zone3"],
"target":["7.91","4.95","2.95"],
"sales":["12.35","6.99","4.13"]
};
var cat = data.area;
var series1 = data.target;
var series2 = data.sales;