工作中遇到的问题随笔:
- 1、问题的复现,字段丢失
- 2、问题分析,查找原因
- 3、找到原因,粗略剖析
1、问题的复现,字段丢失
这是一个比较老的项目,使用了fast-json-1.1.28.jar。在一次实际使用中,列表中始终无法显示其中2个字段,所以一步一步进行问题排查。
1.使用debugger查看查询结果集,查询结果有值,说明sql,DAO层,service层都没有错。
2.查看发送到页面的json数据,通过日志查看,在经过JSON.toJSONString()的时候,这两个值丢了。
2、问题分析,查找原因
经过上面的排查,大概找到原因是,json转换字符串的时候,把这个字段弄丢了
- 1.会不会是类型的问题?
这个字段的类型是 Double的类型, 还有其他字段是Double的,比如上图中的sumRecord也是Double类型,在转换之后没丢,看来不是类型的问题。
- 2.灵光乍现,会不会是没找到getter方法?
虽然没有读过fastjson的源码,但是推测了应该是是用了反射,调用对象的getter方法取值,前往检查getter方法,查完感觉问题很有可能出现在这。 我的setter,getter方法用的MyEclipse自动生成,fScores的getter,自动生成的名为:getfScores(),这显然和平常的不一样。
3.修改代码,再次检查,结果是如预期一样,问题解决了。
3、找到原因,粗略剖析
因为我是使用了MyEclipse自动生成的setter,getter,工具应该严格遵守着一套命名规范,我应该再去查找学习学习。
- 感慨