var option;
$(document).ready(function() {
$.getJSON("jsontest!returnMessage.action",function(data){
option = new Highcharts.Chart({
chart: {
renderTo: 'container',
//defaultSeriesType: 'column',
defaultSeriesType: 'line',
marginRight: 130,
marginBottom: 25
},
title: {
text:'高信宝网络安全卫士2011年销售一览表',
x: -20 //center
},
subtitle: {
text: '北京九合创胜',
x: -20
},
xAxis: {
categories: ['一月', '二月', '三月', '四月', '五月', '六月', 
'七月', '八月', '九月', '十月', '十一月', '十二月']
},
yAxis: {
title: {
text: ' 销 售 台 数 '
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function() {
                return '<b>'+ this.series.name +'</b><br/>'+
this.x +': '+ this.y +'台';
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: [{
name: 'haha',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}]
});
});
});定义了如上的 js代码 ,但是试了好几种写法,都不能获取到 series 的值,还有是如何给 series 这个属性赋值,比如我有几条json数据  { name: 'haha1',data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]}
{ name: 'haha2',data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]}
{ name: 'haha3',data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]}那么我这个代码该怎么写。试了好一阵子 ,未解,求助
}

解决方案 »

  1.   

    代码看着晕,给一个可用的实例,自己慢慢改吧
    主要就是把横纵坐标的数据放在两个数组,然后放到对应的地方。
    还弄不出来可以看官方实例。
     var Periods = new Array();
                var Amounts = new Array();            for (var i = 0; i < data.length; i++) {
                    Periods.push(data[i].Period);
                    Amounts.push(data[i].Num);
                }            chart = new Highcharts.Chart({
                    chart: {
                        renderTo: 'container',
                        defaultSeriesType: 'column',
                        marginRight: 130,
                        marginBottom: 25
                    },
                    title: {
                        text: 'test',
                        x: -20 //center
                    },
                    subtitle: {
                        text: '',
                        x: -20
                    },
                    xAxis: {
                        categories: Periods
                    },
                    yAxis: {
                        title: {
                            text: 'Amount'
                        },
                        plotLines: [{
                            value: 0,
                            width: 0,
                            color: '#808080'
                        }]
                    },
                    tooltip: {
                        formatter: function () {
                            return '<b>' + this.series.name + '</b><br/>' +
    this.x + ': ' + this.y + ' Sticker(s)';
                        }
                    },
                    legend: {
                        layout: 'vertical',
                        align: 'right',
                        verticalAlign: 'top',
                        x: -10,
                        y: 100,
                        borderWidth: 1
                    },
                    series: [{
                        name: 'Stickers',
                        data: Amounts
                    }]
                });
      

  2.   

    [code=JScrip] var Periods = new Array();
      var Amounts = new Array();  for (var i = 0; i < data.length; i++) {
      Periods.push(data[i].Period);
      Amounts.push(data[i].Num);
      }
    .....
      xAxis: {
      categories: Periods
      },
    ......
      series: [{
      name: 'serial',
      data: Amounts
      }]
    ......
    [/code]
      

  3.   

    先谢谢showenxxx的热心
    是这样  我加载
     $(document).ready(function(){
    var option;
    $.getJSON("jsontest!returnMessage.action",function(data){
    str.push(7.0,6.9,9.5,14.5,9.6,6.8,6.8,6.5,7.8,12,21,23);
    alert(str);
    option = new Highcharts.Chart({
    chart: {
    renderTo: 'container',
    //defaultSeriesType: 'column',
    defaultSeriesType: 'line',
    marginRight: 130,
    marginBottom: 25
    },
    title: {
    text:'高信宝网络安全卫士2011年销售一览表',
    x: -20 //center
    },
    subtitle: {
    text: '北京九合创胜',
    x: -20
    },
    xAxis: {
    categories: ['一月', '二月', '三月', '四月', '五月', '六月', 
    '七月', '八月', '九月', '十月', '十一月', '十二月']
    },
    yAxis: {
    title: {
    text: ' 销 售 台 数 '
    },
    plotLines: [{
    value: 0,
    width: 1,
    color: '#808080'
    }]
    },
    tooltip: {
    formatter: function() {
                    return '<b>'+ this.series.name +'</b><br/>'+
    this.x +': '+ this.y +'台';
    }
    },
    legend: {
    layout: 'vertical',
    align: 'right',
    verticalAlign: 'top',
    x: -10,
    y: 100,
    borderWidth: 0
    },
    series: [{
    name: 'aaa',
    data: str
    }]
    });
    });
    能正常显示图表
    但是如果我采用 从action传来的数据  var getJson =data.month;//7.0,6.9,9.5,14.5,9.6,6.8,6.8,6.5,7.8,12,21,23
    var getArray = getJson.split(",");
    var str = new Array();
    for(var i=0;i<getArray.length;i++){
    str.push(getArray[i]);
    }

    这样的话 
                                      在series: [{
    name: 'aaa',
    data: str
    }]
                                             就什么都不显示 , 郁闷 求解,就在于这个 str数据
      

  4.   

    str.push(7.0,6.9,9.5,14.5,9.6,6.8,6.8,6.5,7.8,12,21,23);
    str里面每个元素类行是Numbervar getArray = getJson.split(",");
    getArray里面每个元素是string没有测试,但感觉这个就是主要原因。
      

  5.   

    我也遇到这个问题了,主要是json传过来是数据是string类型,而series只识别数组,我用了最笨的方法:
                series: [{
                name: '22',
                data: (function () {
                    for (var i = 0; i < dt.length; i++) {
                        if (dt[i].name == "22")
                            return dt[i].UsedTime;
                    }
                })()
            }, {
                name: '11',
                data: (function () {
                    for (var i = 0; i < dt.length; i++) {
                        if (dt[i].name == "11")
                            return dt[i].FreeTime;
                    }
                })(),
                color: '#FFFFFF'
            }]