如何在Highcharts中检索/显示标题,单位,版权以及JSON数据

时间:2014-12-16 10:59:53

标签: json highcharts jsonp series

我已成功实现JSONP请求的代码,检索多个国家/地区的数据并将其显示为图表中的行。

但是,我还需要从JSON获取标题,单位,版权等,以便能够在图表上显示这些元素。

现在,我想知道如何做到这一点。

JSON响应可能如下所示:

    [
        [
            "series",
            [
                {
                    "data": [                    
                        [
                            2007,
                            2239300
                        ],
                        [
                            2008,
                            2237490
                        ],
                        [
                            2009,
                            2167070
                        ],
                        [
                            2010,
                            2204450
                        ]
                    ],
                    "name": "France"
                },
                {
                    "data": [                    
                        [
                            2007,
                            2324234
                        ],
                        [
                            2008,
                            3456352
                        ],
                        [
                            2009,
                            1241422
                        ],
                        [
                            2010,
                            4543231
                        ]
                    ],
                    "name": "Germany"
                }
            ]
        ],
        [
            "title",
            {
                "text": "Title here"
            }
        ],
        [
            "yAxis",
            {
                "text": "The units here"
            }
        ]
    ]

我的客户代码需要更改。目前它看起来像这样:

    $.getJSON(url, {selectedCountries: "France,Germany,Switzerland", type: "jsonp"})
        .done(function(data)
        {
            options.series = data;

            var chart = new Highcharts.Chart(options);
        })
        .fail(function(jqxhr, textStatus, error) 
        {
            var err = textStatus + ", " + error;
            console.log( "Request Failed: " + err );
        })

我想它必须变成这样的东西:

            options.series = data['series']['data'];
            options.title  = data['title'];

但这不起作用。谁能给我一个暗示我应该做什么?非常感谢!

1 个答案:

答案 0 :(得分:0)

好的,终于明白了。一个人必须将JSON作为对象传递(而不是数组,也不能作为字符串传递(因此,对象周围没有像'或'这样的引号!)。就像一个魅力here on fiddle

这里是代码:

    $(function () {
        var options = {
            chart: {
                renderTo: 'container',
                type: 'spline',
                marginBottom: 50
            },
            series: [{}]
        };


        data = {
                "title": {
                    "text": "Here goes the title"
                },
                "yAxis": {
                    "title": {
                        "text": "Here go the units"
                    }
                },
                "series": [{
                    "name": "France",
                    "data": [[2006,2189260],[2007,2239300],[2008,2237490],[2009,2167070],[2010,2204450]]
                }]
            };


        options.series  = data["series"];
        options.title  = data["title"];
        options.yAxis  = data["yAxis"];


        var chart = new Highcharts.Chart(options);

    });

非常感谢Sebastian Bochan的大力支持!