Jackson使用PropertyNamingStrategy處理屬性首字母為大寫的情況
阿新 • • 發佈:2019-02-08
最近在專案中呼叫.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;
但是這種方案需要在每個屬性上添加註解,稍顯麻煩。