ajax请求mysql数据表后返回数据格式的差异,不注意将引发datatables和echarts数据无法加载,从而图表无法显示...

在最近的项目编程中,数据库中某传感器数据表如下所示:

ajax请求mysql数据表后返回数据格式的差异,不注意将引发datatables和echarts数据无法加载,从而图表无法显示...

项目采用spring +mybatis,对应这张数据表的java领域对象的属性设计如下:

ajax请求mysql数据表后返回数据格式的差异,不注意将引发datatables和echarts数据无法加载,从而图表无法显示...

 

 在datatables插件通过ajax请求请求这张数据表的数据时,将数据表的数据通过fastjson处理成json格式后传到客户端,但是这时json串中的一些属性名已经被自动改名了,要将这些属性字段绑定到客户端的datatables插件的表格的列上,需要用被改名后的属性名,否则表格数据无法绑定到datatables插件,数据无法显示,这时datatables绑定的json串中的属性名如下(属性名与上述对象中的属性名的大小写已经发生变化,不能写错):

ajax请求mysql数据表后返回数据格式的差异,不注意将引发datatables和echarts数据无法加载,从而图表无法显示...

而同样的数据表个,客户端通过另外一个ajax请求获取json串帮到到echarts折线图上时,服务器在转换为json时用的是spring自带的jackson类包处理,返回的json串的属性名的大小写也发生变化,属性名绑定到折线图参数的代码如***意Jason串的属性名大小写的变化,但是与fastjson处理的结果的大小写还是有区别:

function ntyhsensordisplaygraph(){
$.ajax({

type: 'POST',
url:'ntyhcontroller/getyhhissensor',//这里不需要分页显示,因为是折线图
async: true,
data:{ "beginTime": beginTime,"endTime":endTime,"diffDay":diffDay },
success: function(data){
// alert(data);
var data_ret= $.parseJSON(data);
// alert(data_ret);

//浊度-折线图
myChart_line = echarts.init(document.getElementById('main_11'));
option_line11.series[0].data=[null];
for (var i = 0; i < data_ret.length; i++) {
option_line11.series[0].data[i]=[data_ret[i].data_time,data_ret[i].turbidity];
}
option_line11.title.text = '浊度(NTU)';
myChart_line.setOption(option_line11);
//溶解氧-折线图
myChart_line = echarts.init(document.getElementById('main_12'));
option_line12.series[0].data=[null];
for (var i = 0; i < data_ret.length; i++) {
option_line12.series[0].data[i]=[data_ret[i].data_time,data_ret[i].dissolvedOxygen];
}
option_line12.title.text = '溶解氧(mg/L)';
myChart_line.setOption(option_line12);
//叶绿素-折线图
myChart_line = echarts.init(document.getElementById('main_13'));
option_line13.series[0].data=[null];
for (var i = 0; i < data_ret.length; i++) {
option_line13.series[0].data[i]=[data_ret[i].data_time,data_ret[i].spad];
}
option_line13.title.text = '叶绿素(ug/L)';
myChart_line.setOption(option_line13);
//电导率-折线图
myChart_line = echarts.init(document.getElementById('main_17'));
option_line17.series[0].data=[null];
for (var i = 0; i < data_ret.length; i++) {
option_line17.series[0].data[i]=[data_ret[i].data_time,data_ret[i].conductivity];
}
option_line17.title.text = '电导率(us/cm)';
myChart_line.setOption(option_line17);
//PH-折线图
myChart_line = echarts.init(document.getElementById('main_18'));
option_line18.series[0].data=[null];
for (var i = 0; i < data_ret.length; i++) {
option_line18.series[0].data[i]=[data_ret[i].data_time,data_ret[i].pressure];
}
option_line18.title.text = 'PH';
myChart_line.setOption(option_line18);
//温度-折线图
myChart_line = echarts.init(document.getElementById('main_19'));
option_line19.series[0].data=[null];
for (var i = 0; i < data_ret.length; i++) {
option_line19.series[0].data[i]=[data_ret[i].data_time,data_ret[i].temperature];
}
option_line19.title.text = '温度(℃)';
myChart_line.setOption(option_line19);

}

});

}

如果这些大小写变化没有注意,折线图和表格数据都是无法显示出来的。

ajax请求mysql数据表后返回数据格式的差异,不注意将引发datatables和echarts数据无法加载,从而图表无法显示...