Jackson使用PropertyNamingStrategy处理属性首字母为大写的情况

来源:互联网 发布:php在线考试系统 编辑:程序博客网 时间:2024/05/16 12:15

最近在项目中调用.NET的服务时,Jackson在解析返回的json字符串时始终报错,纠结很久之后才找到原因,原来是由于json字符串中的Key都是首字母大写,导致jackson找不到相应的Key。

可以使用PropertyNamingStrategy统一处理:

ObjectMapper mapper = new ObjectMapper();mapper.setPropertyNamingStrategy(new PropertyNamingStrategy() {private static final long serialVersionUID = 1L;// 反序列化时调用@Overridepublic String nameForSetterMethod(MapperConfig<?> config,AnnotatedMethod method, String defaultName) {return method.getName().substring(3);}// 序列化时调用@Overridepublic String nameForGetterMethod(MapperConfig<?> config,AnnotatedMethod method, String defaultName) {return method.getName().substring(3);}});
另外也可以在属性上添加注解:
@JsonProperty(value = "Name")private String name;
但是这种方案需要在每个属性上添加注解,稍显麻烦。



0 0
原创粉丝点击