使用 echart的jar包,传递到前台报 null错误
表现:后台创建 Option的JsonObjject传递到前台之后,失败,F12控制台报错:无法定义null的属性xxx
原因:使用jar包里面的对象分装没有默认值,而我们自己使用时只是对需要的对象进行重新封装,没有默认值的对象以null形式传递到前台,然而echart在分析数据时,会对本该时对象的值进行深度查看,遇到这些null的对象时就出现了以上错误;
解决:在前台或者后台对Json对象进行递归处理,把所有为null “null” “” 0 “0” 等 进行移除,echart就会设置默认值
给出前台逻辑:
function handlerJson(object){ for (var i in object) { var value = object[i]; if (typeof value === 'object') { if(value === null || value === undefined){ delete object[i]; continue; } this.handlerJson(value); if (this.isEmpty(value)) { delete object[i]; } } else { if (value === '' || value === null || value === undefined || value===0) { delete object[i]; } } } } function isEmpty(object) { for (var name in object) { return false; } return true; }
这个人很懒,什么也没下留。