明明后台查询到的数据是符合highcharts的要求,但是图表却无法显示?
- 先打开浏览器的开发者模式,看看传的json格式和对应的图表要的data是否真的一致。
- 有可能写js代码的时候漏写括号等等
来看个实例:
series: [{
//仔细观察以后,我们可以发现
name: 'Brands',
colorByPoint: true,
data: [{
name: 'Chrome',
y: 61.41,
sliced: true,
selected: true
}, {
//data 数据格式应该是name:‘name值’,y:数字
//特别注意,这里的数字是没有双引号!!!
name: 'Internet Explorer',
y: 11.84
}, {
name: 'Firefox',
y: 10.85
}, {
name: 'Edge',
y: 4.67
}, {
name: 'Safari',
y: 4.18
}, {
name: 'Sogou Explorer',
y: 1.64
}, {
name: 'Opera',
y: 1.6
}, {
name: 'QQ',
y: 1.2
}, {
name: 'Other',
y: 2.61
}]
}]
当从后台查询id为String的值时,后台传过来的值是这样的
data:name:'xiaobai',id:'121'
//但是图表要的是:
data:data:name:'xiaobai',id:121
仅仅因为一个单引号导致图表出不来不划算,但是id字段就是String类型怎么办?
这里提供个最简单的方法:
从查询的时候就把格式给转换好,这里使用CAST(id as integer)
例如:SSH中面象对象查询时 使用该函数CAST(id as integer)把某个String类型的值转成integer就可以了
//查询最高理赔金额和产品名称
public List<Object> findLimitAndName() {
String hql="SELECT bx_name,CAST(bx_limit as integer) FROM Insurance";
return (List<Object>) this.getHibernateTemplate().find(hql);
}
这样发送的页面时的json格式为
data:name:'xiaobai',id:121
//就搞定了
data:data:name:'xiaobai',id:121
小白瞎搞,下次一定点赞!