【问题标题】:How to make json array name series name, array data -series data in highcharts?如何在highcharts中制作json数组名称系列名称,数组数据系列数据?
【发布时间】:2014-04-07 13:53:07
【问题描述】:

我正在获取用 json 编码的数组列表:

 [{"root":[0,0,0,0,0,75,75,100,0,0]}, {"aleks":[2,0,2,1,2,3,4,0,23,12,40]} ...more]

来自我的 php 文件。

并希望在我的基于列的高图中显示它,如下所示:

每个列系列以数组名称、根、aleks 等命名。 并将数据系列作为他们的数据。

我已经尝试过这段代码来喂系列:

 $.ajax({
        url: "p_result.php",
        dataType: "json",
        success: function(data){

            for(var i in data){
                      options.series[i].name = i;
                      options.series[i].data = data[i];
                }
            var chart = new Highcharts.Chart(options);

但是我得到了错误的结果,好吧,没有显示数据。

任何帮助将不胜感激。

【问题讨论】:

  • 因此您的 options.series 看起来如何?
  • 我得到 i = 0,并且 data[i] 是 [object Object],知道问题是什么吗?

标签: jquery json highcharts


【解决方案1】:

您的 for(var i in data) 正在迭代外部 json 数组,而不是数组中的每个对象。

试试:

for(var i in data){ // iterate outer array
    for(var j in data[i]){ // iterate inner objects properties
        options.series[i].name = j; // this is the key
        options.series[i].data = data[i][j]; // use the key and index to get value
        break; // we only care about the first object
    }
}

这是fiddle

【讨论】:

  • 再问一次。当我有两个或更多时,option.series 给我错误“无法设置未定义的属性'名称'”。我应该如何正确定义它?谢谢。
  • 我以为您正在重用旧系列对象。只需在此处推送它们即可查看更新:jsfiddle.net/W93HY/1
  • 非常好。我正在考虑使用adderies方法重写。但该解决方案运行良好。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 2023-04-04
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多