jackson在序列化時將欄位開頭大寫轉成小寫,反序列化中JsonMappingException異常
阿新 • • 發佈:2021-09-22
1.jackson在序列化過程中會將大寫開頭的欄位自動轉成小寫開頭
public class BrandRequest { @JsonProperty(value="UPDATE_TIME")
private String UPDATE_TIME;
public Date getUPDATE_TIME() {
return UPDATE_TIME;
}
public void setUPDATE_TIME(Date uPDATE_TIME) {
UPDATE_TIME = uPDATE_TIME;
}
}
此時在序列號和過程中首字母(或者首單詞)被轉成小寫。
解決方法
@JsonAutoDetect(getterVisibility=JsonAutoDetect.Visibility.NONE)
public class BrandRequest {
}
2.在反序列化中,源物件出現了目標物件沒有的欄位,造成JsonMappingException
解決方法,設定DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); try { return mapper.readValue(json, clazz); } catch (JsonParseException e) { logger.info("---jsonToObject2---JsonParseException異常", e); } catch (JsonMappingException e) { logger.info("---jsonToObject2---JsonMappingException異常", e); } catch (IOException e) { logger.info("---jsonToObject2---IOException異常", e); }