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

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

可以使用PropertyNamingStrategy统一处理:

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



你可能感兴趣的:(JavaEE)