用于高图表的正确JSON格式

Proper JSON format for highcharts

本文关键字:JSON 格式 高图表 用于      更新时间:2023-09-26

我有一个mysql-db给我的高图提供对。它正在为pH计提供时间戳和传感器值。当我加载图形时,我会得到显示时间戳和传感器值的工具提示,但当它从数据库连续馈送时,工具提示显示未定义为我的时间戳,但我构建的数组中有它。我希望尽可能具体。我认为我错误地构建了json字符串,这就是为什么highcharts不知道该怎么处理它的原因。

以下是我对php页面的回调:

events: {
    load: function() {
        var chart = this;
        var series = this.series[0];
        setInterval(function() {                                    
            $.getJSON("php/dataPhIncremental.php", function(data) {
                // Only add data points if the latest date in the DB is different
                if (!(chart.yAxis[0].dataMax == data[0].data[0])) {
                    $(chart.series).each(function(i, series) {
                        console.log(data[0]);
                        series.addPoint([data[0].timestamp[0], data[0].data[0]]);
                    }); 
                } 
                else {
                    console.log("did not write point"+ oldPoint + "   " + data[0].data);
                }
            })
        }, 1000);
    }

以为getJSON会转到php页面,获取json字符串,让highcharts用它做它想做的事情。我错了。

我的php-json返回对象示例:

[{"name":"pH","data":[4.76],"timestamp":["2015-12-23 12:31:42"]}]

这是用于增量回调。初始字符串可容纳10对。

尝试使用日期类型:

                    console.log(data[0]);
                    d = new Date(data[0].timestamp[0]);
                    series.addPoint(d, data[0].data[0]);

试试你的xAxis:

xAxis: {
  type: 'datetime',
  labels: {
    formatter: function() {
      return Highcharts.dateFormat('%e %b', this.value*1000); // milliseconds not seconds
    },
  }
}