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上。

你可能感兴趣的:(Jackson Property在field上使用时,出现大小写重名)