0

我已经浏览了很长一段时间来找到我的问题的答案,我不得不承认我很难过。我想我必须在这里遗漏一些非常简单的东西,但现在我看不到树木的树木。

我正在尝试通过 JSON 加载 highchart,并且 JSON 是由 PHP 数组创建的(原因是我正在从 MySQL 检索数据。)该系列加载正常,但是我无法提取图表的标题. 我的理解是,该代码需要类似于 json.title.text ......但是这不起作用并使脚本崩溃。任何帮助将不胜感激!

PHP数组如下(我放了虚拟变量来简化......):

    $arr = 
array (
    array (
        'title' => array (
            'text' => 'idiot'
        ),
        'data' => array (
            '2012-12-16; 0',
            '2012-12-16; 23'
        )
    ),
    array (
        'name' => 'Sacred cows',
        'data' => array (
            98.9914,
            99.5429
        )
    ),

);
echo json_encode($arr);

生成图表的 javascript 如下:

  function marketwidget(id){

var formData = "name="+ id + "&age=31";

$.ajax({
    url : "marketwidget.php",
    type: "POST",
    data: formData,
    success: function(data, textStatus, jqXHR)
    {
            var json = JSON.parse(data)

    var len = json.length
    i = 0;

    var options = {
   title: {
        text: []
        },
        xAxis: {
            categories: []
        },
        series: []
    }

        options.title.text = json.title.text

    for (i; i < len; i++) {
        if (i === 0) {
            var dat = json[i].data,
                lenJ = dat.length,
                j = 0,
                tmp;

            for (j; j < lenJ; j++) {
                tmp = dat[j].split(';');
                options.xAxis.categories.push(tmp[0]);
            }
        } else {
                options.series.push(json[i]);
        }
    }



    $('#container').highcharts('StockChart', options);

        },
    error: function(jqXHR, textStatus, errorThrown)
    {
    }
});

}
4

1 回答 1

3

您阅读解析的 json 的方式不正确。当我尝试时,我能够访问标题json[i].title.text

行 : 中缺少数组索引options.title.text = json.title.text。你可以试试options.title.text = json[0].title.text

<script>
  var json = JSON.parse('[{"title":{"text":"idiot"},"data":["2012-12-16; 0","2012$


  for (var i = 0; i < json.length; i++) {
     document.write(json[i].title.text); 
  }
</script>
于 2013-11-04T16:05:01.267 回答