Jackson Property在field上使用时,出现大小写重名

Jackson序列号的方案:
public修饰的field -> public修饰的getter -> public修饰的setter

字段都是private的,所以无法识别。
而 getter识别的时候无法却分首字母是大写还是小写,
所以jackson统一用java的规范假设成小写,所以会出现小写

而@JsonProperty又指定了需要转换一个首字母大写的name,所以会出现大写。
一种方案是通过修改检查Field的可见性。

  ObjectMapper mapper = new ObjectMapper();
  mapper.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE);
  mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);

另一种是,通过把JsonProperty修饰到getter上。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。