使用Jackson反序列化遇到的問題及解決
Jackson反序列化遇到的問題
最近在項(xiàng)目中需要使用Jackson把前臺轉(zhuǎn)來的字符轉(zhuǎn)為對象,轉(zhuǎn)換過程中發(fā)生了錯誤,報(bào)錯如下
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)換成的目標(biāo)對象有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)用兩個(gè)注解就可以輕松解決
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createTime;
JackSon反序列化時(shí)忽略對象中不存在的json字段
如果json字段比較多,而我們對象只需要部分字段,這時(shí)反序列化時(shí)會報(bào)錯,可以在new ObjectMapper后加上
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
就可以在反序列化時(shí)忽略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); }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Struts2 文件上傳進(jìn)度條的實(shí)現(xiàn)實(shí)例代碼
本篇文章主要介紹了Struts2 文件上傳進(jìn)度條的實(shí)現(xiàn)實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05基于web項(xiàng)目log日志指定輸出文件位置配置方法
下面小編就為大家分享一篇基于web項(xiàng)目log日志指定輸出文件位置配置方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Java設(shè)計(jì)模式之策略模式詳細(xì)解析
這篇文章主要介紹了Java設(shè)計(jì)模式之策略模式詳細(xì)解析,策略模式中,定義算法族,分別封裝起來,讓他們之間可以相互轉(zhuǎn)化,此模式讓算法的變化獨(dú)立于使用算法的客戶,需要的朋友可以參考下2023-11-11Spring Boot實(shí)現(xiàn)熱部署的實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于Spring Boot實(shí)現(xiàn)熱部署的實(shí)例方法和實(shí)例,需要的朋友們可以參考下。2020-02-02Java String字符串補(bǔ)0或空格的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java String字符串補(bǔ)0或空格的實(shí)現(xiàn)代碼,代碼簡單易懂,非常不錯,具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-09-09Mybatis-Plus的saveOrUpdateBatch(null)問題及解決
這篇文章主要介紹了Mybatis-Plus的saveOrUpdateBatch(null)問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Java實(shí)現(xiàn)辦公文檔在線預(yù)覽功能
java實(shí)現(xiàn)辦公文件在線預(yù)覽功能是一個(gè)大家在工作中也許會遇到的需求,這篇文章就教大家如何實(shí)現(xiàn)這一功能,感興趣的小伙伴可以了解一下2021-12-12Java自帶的Http?Server實(shí)現(xiàn)設(shè)置返回值的類型(content-type)
這篇文章主要介紹了Java自帶的Http?Server實(shí)現(xiàn)設(shè)置返回值的類型(content-type),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11