高图的多维 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;