原理 :
Jackson默认的属性发现规则将会查找到如下所述的属性:
•所有被public修饰的字段(成员变量);
•所有被public修饰的getter(即形如“getXxx()”的方法);
•所有被public修饰的setter(即形如“setXxx(value)”的方法)
Jackson字段名是从get方法名转换过来的,比如字段是USER
如果字段首字段大写,那么解析的时候会去找首字段小写对应的字段.
当然是找不到的,所有USER的解析结果就会是null.
处理方法:
屏蔽掉get方法,并且使所有字段可见.
// 任何属性可见
super.getObjectMapper().setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
// 屏蔽get方法
super.getObjectMapper().setVisibility(PropertyAccessor.GETTER, Visibility.NONE);
// 屏蔽null
super.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
网友评论