Jackson返回序列化的注意点

在Controller正常返回数据结果后,框架需要把这个结果转成json字符串返回给浏览器,这一步处理叫做JSON序列化。

JSON序列化有很多开源框架,Jackson、fastJson、Gson等,springmvc默认使用Jackson。

1.布尔类型

Jackson中,序列化不依赖于实体类中的变量,只依赖于实体类中的get方法,但boolean类型的变量例外,是以isXxxx作为序列化方法的。
尽量不要使用is开头去定义boolean,虽然自己刻意实现了对应的get方法后也没问题。
也可以用包装类Boolean去定义一个布尔类型的变量,但是又何必呢?
boolean类型的变量避免is开头!

2.其他类型

除boolean变量外的所有变量,get方法的解析规则:get后面的连续大写字母都转成小写,subString(3)作为变量名。
即name和nAme变量的get方法分别为getName(),getNAme(),但是jackson认为只有一个变量name。
同时Lombok的@Data也有一些问题需要注意:
在生成形同xXxx变量的get方法时,Lombok是getXXxx(),而其实我们需要的是getxXxx()。
前者会导致前端收到的是xxxx的变量而非xXxx,以至于后续后端无法接受。

posted @ 2021-07-08 14:42  爱饮凉水  阅读(369)  评论(0编辑  收藏  举报