找不到Highcharts的正确JSON数组语法

时间:2014-12-09 10:12:36

标签: javascript php arrays json highcharts

希望一切顺利。我在通过PHP设置JSON数组并将其推入Highcharts时遇到了一些麻烦。

目前我生成这样的数组:

    $stack[] = array($commname => $countit);
    $stack = json_encode($stack);

当我print_r数组时,我得到以下内容:

  

[{“原油”:69},{“天然气”:554},{“液体自然   气 “:152},{” 电源 “:40},{” 煤炭 “:10},{” 天气 “:21},{” 宏观经济 “:67},{” 其它 “:45},{” 价格” :50},{ “货运”:14},{ “预测”:16}]

然后我将数组传递给javascript,如下所示:

var stack = <?php echo json_encode( $stack ) ?>;

..然后将它传递到下面的highcharts数组中:

var text = {
        chart: {
            plotBackgroundColor: null,
            plotBorderWidth: 1,//null,
            plotShadow: false
        },
        title: {
            text: 'Browser market shares at a specific website, 2014'
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                    style: {
                        color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                    }
                }
            }
        },
        series: [{
            type: 'pie',
            name: 'Browser share',
            data: [
                ]
            }]
        };
text.series[0].data.push(stack);

......但这不起作用。我认为我的数组“堆栈”没有准备好,因为highcharts希望它采用这种格式:[[“原油”,35],[“天然气”,45]等......]

关于我做错了什么的指示?谢谢!

-G。

3 个答案:

答案 0 :(得分:1)

试试这个jQuery.parseJSON

  

jQuery.parseJSON()

var stack = <?php echo json_encode( $stack ) ?>;
stack  = jQuery.parseJSON(stack);

答案 1 :(得分:0)

你有两种方法 - 将json形成这种形式:

{name:"Crude Oil", y:69}
  • 获取JSON然后使用循环并推送到新系列数据数组,然后在highcharts选项中引用它。

答案 2 :(得分:0)

你应该像这样生成源数组:

$stack[] = array($commname, $countit);

或者像这样

$stack[] = array('name' => $commname, 'y' => $countit);