问题出现
在最近写的一个项目中,需要把一个实体对象以json文档的形式储存。
其中包含这样的一个类:
一开始使用**ObjectMapper().writeValueAsString(data)**时可以非常正常地生成以下json:
后面一直在正常进行开发,直到有一天打开了一下生成的json文档,发现里面出现了奇怪的东西:
是的就是放在第一个的notNull!
问题定位
其实整个生成json文档的逻辑非常简单,就是读数据,生成相应的json格式字符串,最后写入文档。
问题只可能出现在生成json格式的位置!通过debug也可以很容易的验证这个结论。
全局搜索notnull发现只有一个函数包括了这两个单词:
问题解决
当时第一反应是getNotNull这个函数名是不是和其他函数名冲突了,于是我把函数名改为了getOneList,结果输出的json文档变成了这样:
这样的话问题就很显然了,应该是**ObjectMapper().writeValueAsString(data)**在生成json格式的字符时会调用data类中全部的getter方法。
所以解决方法就是把函数名改掉,不使用get开头!