duanpie2414
2013-11-04 15:38
浏览 70
已采纳

从JSON数组中提取JSON对象

I have been surfing SO for quite some time to find an answer to my question, and I have to admit that I am stumped. I think I must be missing something very simple here but right now I can't see the wood for the trees.

I am trying to load a highchart via JSON, and the JSON is created by a PHP array (the reason for this is that I am retrieving the data from MySQL.) The series are loading fine, however I cannot extract the title for the chart. My understanding is that the code for that needs to be something like json.title.text ... however this does not work and crashes the script. Any help would be greatly appreciated!

The PHP array is as follows (I have put dummy variable to simplify...):

    $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);

The javascript that generates the charts is as follows:

  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)
    {
    }
});

}
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题