如何将json数据传递给highcharts系列?

我有跟随在运行时生成的json数组。 因此,名称/数据对的数量变化。

`var sales = { "SalesData" : [ { "name" : "AllProducts|Canada", "data" :[44936.0,50752.0] }, { "name" : "AllProducts|Mexico", "data" : [200679.0,226838.0] }, { "name" : "AllProducts|USA", "data" : [288993.0,289126.0] } ]} ` 

我想将这些数据传递给highcharts中的系列。

这就是我目前的做法。

 series: [ {name:sales.SalesData[0].name,data:sales.SalesData[0].data}, {name:sales.SalesData[1].name,data:sales.SalesData[1].data}, {name:sales.SalesData[2].name,data:sales.SalesData[2].data} ] 

但是如果数组中的元素数量发生了变化,那么这将不起作用。 我该如何解决这个问题? 演示代码将帮助我。

我已经审问了以下问题,但我无法解决问题。

动态添加到Highcharts

Highcharts系列数据arrays

您可以循环遍历sales变量数据并构造数组,而不是手动构建series数组。 那么sales.SalesData数组中的元素数量,所有项目都将在series数组中

 var series = [], salesData= sales.SalesData; for (var i=0 i< salesData.length; i++) { series.push({"name" : key, "data" : sales[key]}) } 

这个构造的series数组是对象的一部分,您必须将其作为参数传递给highcharts方法。

 var chartdata = { chart: {type: 'column'}, title: {text: 'Sales Data'}, xAxis: { categories: ['Category 1','Category 2'] }, yAxis: { min: 0, title: {text: 'Sales'} }, series : [] } chartdata.series = series; $('#chart').highcharts(chartdata); 

其中#chart是您要显示图表的容器。

您还可以参考每种类型图表的演示页面中提供的小提琴,以了解有关如何显示特定类型图表的更多信息。

我解决了这个问题

更改了json数组如下:

 var sales = [ { "name" : "AllProducts123|Canada", "data" :[44936.0,50752.0] }, { "name" : "AllProducts|Mexico", "data" : [200679.0,226838.0] }, { "name" : "AllProducts|USA", "data" : [288993.0,289126.0] } ] 

现在将它直接传递给highcharts中的系列。

  series:sales 

完成!!!!!