java中对于布尔变量使用jackson序列化时需要注意变量命名。
根据javabean规范,如果布尔变量名是p,则getter和setter方法分别为:isP和setP。
如果按照上述规范来命名变量及getter和setter,那么json的序列化和反序列化都没有问题。
但是如果,命名为isP,则默认的getter和setter方法还是isP和setP,这点需要额外注意。
序列化后的变量名为p:true。如果希望是序列化为isP,只能重写getter为isIsP,或者使用JacksonProperty重命名变量名。比较麻烦。
建议直接使用javabean规范来定义布尔属性。
序列化原理猜测:
序列化扫描对象的getter方法,序列化后的属性名根据getter方法名和javabean规范推断;
反序列化根据json字段名和getter方法找到映射关系,再调用对应的setter方法设置属性;