欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Jackson反序列化遇到的問題及解決

 更新時間:2021年08月10日 09:49:46   作者:輕云_  
這篇文章主要介紹了使用Jackson反序列化遇到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Jackson反序列化遇到的問題

最近在項目中需要使用Jackson把前臺轉(zhuǎn)來的字符轉(zhuǎn)為對象,轉(zhuǎn)換過程中發(fā)生了錯誤,報錯如下

​com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not construct instance of java.util.Date from String
value '2018-09-14 15:12:08': not a valid representation (error: Failed to parse Date value '2018-09-14 15:12:08':
Can not parse date "2018-09-14 15:12:08": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))

原因是需要轉(zhuǎn)換成的目標對象有Date類型的屬性,前臺傳來的是yyyy-MM-dd HH:mm:ss類型

而Jackson只支持以下四種

yyyy-MM-dd'T'HH:mm:ss.SSSZ 
yyyy-MM-dd'T'HH:mm:ss.SSS'Z' 
EEE, dd MMM yyyy HH:mm:ss zzz 
yyyy-MM-dd 

在網(wǎng)上查了許多方法都比較麻煩,我太懶……

發(fā)現(xiàn)用兩個注解就可以輕松解決

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;

JackSon反序列化時忽略對象中不存在的json字段

如果json字段比較多,而我們對象只需要部分字段,這時反序列化時會報錯,可以在new ObjectMapper后加上

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

就可以在反序列化時忽略json中多余的字段了。

jackson反序列化失敗異??偨Y(jié)

存在沖突的訪問器方法,Conflicting setter definitions for property “myproperty”

例如:

class TypeA extends TypeB implements InfC {}
class TypeB {
 String myproperty;
 String getMyproperty(){return myproperty};
 void setMyproperty(String value){myproperty = value};
}
interface InfC {
 String getMyproperty();
 void setMyproperty(String value); 
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論