【问题标题】:How to retrieve/display title, units, copyright along with JSON data in Highcharts如何在 Highcharts 中检索/显示标题、单位、版权以及 JSON 数据
【发布时间】:2014-12-16 10:59:52
【问题描述】:

我已成功实现 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'];

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

【问题讨论】:

  • 所以你需要在json中准备正确的表格(与图表配置相同,包括数据),加载并运行图表。
  • @Sebastian:谢谢。我认为它会那样工作。但是什么是正确的 json 以便 Highcharts 可以运行呢?上面的 JSON 代码是 JSON 正确的。而且我想在客户端我需要一个不同于“options.series = data”的命令。你可以再详细一点吗?那真的很有帮助。非常感谢!
  • JSON 我的意思是返回带有配置的对象,例如 { "xAxis":{"title":{"text":"aaa"}},"series":[{"data":[ 1,2,3]}]},您可以加载它并在回调中初始化图表(如您所述)。
  • 谢谢。但我还是不明白。您的 JSON 括号看起来与我从 JSON 调用中收到的不同...我提出了 a fiddle,这也许可以帮助我理解这个问题。非常感谢您的帮助!

标签: json highcharts jsonp series


【解决方案1】:

好的,终于搞定了。必须将 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 的大力支持!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2022-12-01
    • 1970-01-01
    • 2023-04-04
    • 2014-11-22
    相关资源
    最近更新 更多