Jquery HighCharts通过Json加载数据

Jquery HighCharts通过Json加载数据,jquery,json,highcharts,Jquery,Json,Highcharts,我正试图用我的Json数据制作一个HighCharts图表。 这是我的Json数据 [{"ReadData":"99","Time":"07\/09\/2015 00:00:07"},{"ReadData":"101","Time":"07\/09\/2015 00:01:07"},{"ReadData":"113","Time":"07\/09\/2015 00:02:07"},{"ReadData":"115","Time":"07\/09\/2015 00:03:07"},{"ReadDa

我正试图用我的Json数据制作一个HighCharts图表。 这是我的Json数据

[{"ReadData":"99","Time":"07\/09\/2015 00:00:07"},{"ReadData":"101","Time":"07\/09\/2015 00:01:07"},{"ReadData":"113","Time":"07\/09\/2015 00:02:07"},{"ReadData":"115","Time":"07\/09\/2015 00:03:07"},{"ReadData":"96","Time":"07\/09\/2015 00:04:07"},{"ReadData":"103","Time":"07\/09\/2015 00:05:07"}]
我的问题是,当图形没有加载时,我做错了什么? 这是我的HTML代码

<html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    <script src="http://code.highcharts.com/modules/exporting.js"></script>
    <div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
     <script>

        $(document).ready(function() {

    var options = {
        chart: {
            renderTo: 'container',
            type: 'spline'
        },
        series: [{}]
    };

    $.getJSON('data.json', function(data) {
        options.xAxis.categories = json[0]['Time'];
        options.series[0] = json[0]['ReadData'];
        var chart = new Highcharts.Chart(options);
    });

});
    </script>         
    </head>
</html>

$(文档).ready(函数(){
变量选项={
图表:{
renderTo:'容器',
类型:“样条线”
},
系列:[{}]
};
$.getJSON('data.json',函数(数据){
options.xAxis.categories=json[0]['Time'];
options.series[0]=json[0]['ReadData'];
var图表=新的Highcharts.图表(选项);
});
});

有几个问题,请参阅工作演示:

让我解释一下:

  • 您的格式与Highcharts不兼容,并且您试图以错误的方式使用此格式,请先解析数据:

            var categories = [],
               points = [];
    
            $.each(JSON, function(i, el) { // Assuming that JSON is data from getJSON()
                categories.push(el.Time);
                points.push(parseFloat(el.ReadData)); // Another issue - data should be number, not string
            });
           options.xAxis.categories = categories;
           options.series[0].data = points;
           var chart = new Highcharts.Chart(options); 
    
  • 选项中没有
    xAxis
    ,但您仍在尝试分配
    类别

       var options = {
           chart: {
               renderTo: 'container',
               type: 'spline'
           },
           xAxis: {},
           series: [{}]
       };
    
总之,您的代码应该如下所示:

       var options = {
           chart: {
               renderTo: 'container',
               type: 'spline'
           },
           xAxis: {},
           series: [{}]
       };

       $.getJSON('data.json', function (data) {
           var categories = [],
               points = [];

            $.each(data, function(i, el) {
                categories.push(el.Time);
                points.push(parseFloat(el.ReadData));
            });
           options.xAxis.categories = categories;
           options.series[0].data = points;
           var chart = new Highcharts.Chart(options);
       });

有几个问题,请参见工作演示:

让我解释一下:

  • 您的格式与Highcharts不兼容,并且您试图以错误的方式使用此格式,请先解析数据:

            var categories = [],
               points = [];
    
            $.each(JSON, function(i, el) { // Assuming that JSON is data from getJSON()
                categories.push(el.Time);
                points.push(parseFloat(el.ReadData)); // Another issue - data should be number, not string
            });
           options.xAxis.categories = categories;
           options.series[0].data = points;
           var chart = new Highcharts.Chart(options); 
    
  • 选项中没有
    xAxis
    ,但您仍在尝试分配
    类别

       var options = {
           chart: {
               renderTo: 'container',
               type: 'spline'
           },
           xAxis: {},
           series: [{}]
       };
    
总之,您的代码应该如下所示:

       var options = {
           chart: {
               renderTo: 'container',
               type: 'spline'
           },
           xAxis: {},
           series: [{}]
       };

       $.getJSON('data.json', function (data) {
           var categories = [],
               points = [];

            $.each(data, function(i, el) {
                categories.push(el.Time);
                points.push(parseFloat(el.ReadData));
            });
           options.xAxis.categories = categories;
           options.series[0].data = points;
           var chart = new Highcharts.Chart(options);
       });

将json[0]['Time']替换为json[0]。时间;如果你能分担你的问题就更好了。初始化一个数组并在其中放入时间和其他值,然后调用highcharts.json[0]['Time']以替换为json[0].Time;如果你能分担你的问题就更好了。初始化一个数组,在其中放入时间和其他值,然后调用highcharts。