您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何解決使用Jackson反序列化遇到的問題”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何解決使用Jackson反序列化遇到的問題”這篇文章吧。
最近在項(xiàng)目中需要使用Jackson把前臺轉(zhuǎn)來的字符轉(zhuǎn)為對象,轉(zhuǎn)換過程中發(fā)生了錯(cuò)誤,報(bào)錯(cuò)如下
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)上查了許多方法都比較麻煩,我太懶……
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createTime;
如果json字段比較多,而我們對象只需要部分字段,這時(shí)反序列化時(shí)會報(bào)錯(cuò),可以在new ObjectMapper后加上
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
就可以在反序列化時(shí)忽略json中多余的字段了。
存在沖突的訪問器方法,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); }
以上是“如何解決使用Jackson反序列化遇到的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。