在Highcharts中使用JSON文件

时间:2015-01-08 13:29:20

标签: javascript jquery json highcharts

我有一系列的高温和低温,我想在Highcharts的列范围图表中显示。

我特别想要一个类似于演示示例中显示的图表:http://www.highcharts.com/stock/demo/columnrange

我已将数据放在名为datatest.json的文件中,它包含以下文本:

[
[1230771600000, -5.8, 10.1],
[1230858000000, -4.1, 1.4],
[1230944400000, -0.5, 4.1],
[1231030800000, -8.9, -0.7],
[1231117200000, -9.7, -3.7],
[1231203600000, -3.4, 3.2],
[1231290000000, -3.9, -0.2],
[1231376400000, -2.4, 6.7],
[1231462800000, 3.8, 6.9],
[1262221200000, -12.2, -6.5]
]

当我从文件中加载数据时,它并没有给我一个图表。例如,有了这个:

$(function () {

    $.getJSON('data/datatest.json', function (data) {

        $('#container').highcharts('StockChart', {

            chart: {
                type: 'columnrange'
            },

            rangeSelector: {
                selected: 2
            },

            title: {
                text: 'Temperature variation by day'
            },

            tooltip: {
                valueSuffix: '°C'
            },

            series: [{
                name: 'Temperatures',
                data: data
            }]

        });
    });

});

但是,如果我将数据直接放入我的代码中(如下所示),它会按照我的预期显示图表:

$(function () {

        $('#container').highcharts('StockChart', {

            chart: {
                type: 'columnrange'
            },

            rangeSelector: {
                selected: 2
            },

            title: {
                text: 'Temperature variation by day'
            },

            tooltip: {
                valueSuffix: '°C'
            },

            series: [{
                name: 'Temperatures',
                data: [
[1230771600000, -5.8, 10.1],
[1230858000000, -4.1, 1.4],
[1230944400000, -0.5, 4.1],
[1231030800000, -8.9, -0.7],
[1231117200000, -9.7, -3.7],
[1231203600000, -3.4, 3.2],
[1231290000000, -3.9, -0.2],
[1231376400000, -2.4, 6.7],
[1231462800000, 3.8, 6.9],
[1262221200000, -12.2, -6.5]
]
            }]

        });

});

我认为我要么在数据文件中错误地格式化数据,要么我没有以正确的方式从文件中读取数据。

非常感谢任何帮助我走上正确轨道的建议或指导。

1 个答案:

答案 0 :(得分:0)

感谢@SebastianBochan引导我注意我的JSON无效。

以下是正确格式化JSON的缩写剪辑:

{
"data":
[
[1420640460000,36.7,37.25],
[1420640520000,37.19,37.74],
[1420640580000,37.74,38.6],
[1420640640000,38.72,39.33],
[1420640700000,39.33,39.51]
]
}

我使用了JSON验证器:http://jsonformatter.curiousconcept.com/

我是否打电话给它"数据"这并不重要。或者"温度"它只需要一个字符串,然后当我引用它时,我需要确保将其引用为data.data。如果我打电话给它"温度"然后它将是data.temperature。在任何情况下,这里都是代码:

    series: [{
        data: data.data
    }]