jackson序列化字段字母大小写及字段名重复

一:Jackson默认的属性发现规则将会查找到如下所述的属性:
1.所有被public修饰的字段(成员变量);
2.所有被public修饰的getter(即形如“getXxx()”的方法);
3.所有被public修饰的setter(即形如“setXxx(value)”的方法)。
字段名是通过get方法名转换过来的, 所以会出现字母大小写问题(当前几个都是大写的字母,都会转换成小写,直到不是大写为止,若小写后面还有大写,则保持大写。), 以及如果用@JsonProperty("")强制序列化为某个名称时, 如果不在get/set方法上加@JsonIgnore则会出现两个字段,一个首字母大写, 一个首字母小写。可以将属性用private修饰,在get方法上加@JsonProperty。
二:可以在实体类上加注解@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.ANY, getterVisibility=JsonAutoDetect.Visibility.NONE)
1.JsonAutoDetect.Visibility.ANY : 表示所有字段都可以被发现, 包括private修饰的字段, 解决大小写问题;
2.JsonAutoDetect.Visibility.NONE : 表示get方法不可见,解决字段重复问题。
参考: https://blog.csdn.net/cosisis/article/details/81240386


作者:爱的旋转体
链接:https://www.jianshu.com/p/855654b3b68c
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自www.cnblogs.com/zhoading/p/10760377.html