報(bào)錯(cuò)信息:
Cannot deserialize value of type `java.lang.Long` from Object value (token `JsonToken.START_OBJECT`)
與之相似的還有:
JSON parse error: Cannot deserialize value of type `java.lang.Integer` from Boolean value
?翻譯過來意為:不能反序列化的值? 類型java.lang.Long---->Object類型,表示代碼試圖反序列化時(shí),遇到了異常,代碼邏輯居然要求將Long類型強(qiáng)制反序列化回Object類型
到代碼中對(duì)比了我的測(cè)試用例與前端的控制臺(tái)實(shí)際傳參,發(fā)現(xiàn)入?yún)⒔Y(jié)構(gòu)是一模一樣,
但我這邊測(cè)試用例可以正常新增寫庫,但前端卻不能新增,報(bào)錯(cuò)Cannot deserialize value of type `java.lang.Long` from Object value (token `JsonToken.START_OBJECT`),
翻譯過來意為:不能反序列化的值? 類型java.lang.Long---->Object類型,表示代碼試圖反序列化時(shí),遇到了異常,代碼邏輯居然要求將Long類型強(qiáng)制反序列化回Object類型,所以報(bào)錯(cuò)了
這邊看了下后端入?yún)⒔Y(jié)構(gòu),是需要傳一個(gè)VO
看一下VO內(nèi)部,原來內(nèi)部還套著一個(gè)VO,暫且叫它VO內(nèi)
這里整理一下思路,按照前面測(cè)試用例的要求,
是需要傳一個(gè)VO,除了基礎(chǔ)的name等字段,還有一個(gè)屬性,要一個(gè)集合? <VO內(nèi)>
而這個(gè)內(nèi)部的VO內(nèi)卻只需要傳一個(gè)id,再瞅一眼id的類型,哦豁,Long類型,那說明異常就在這里了,可想而知,當(dāng)前端的JSON類型入?yún)⒌胶蠖?,后端將之反序列化為入?yún)r(shí),因?yàn)橐呀?jīng)制定了入?yún)㈩愋?,所以前面的name等字段都會(huì)對(duì)號(hào)入座,反序列化成為VO的屬性,而前端的
"elementGroupVOList": [
{
"id": 12
},
{
"id": 13
}
],
這堆東西,可就讓JSON反序列化流懵逼了,這只丟給我一堆id,又沒有指定發(fā)反序列化的目標(biāo)類型是什么,那就給轉(zhuǎn)成Object吧,然后一執(zhí)行就出異常了,Long類型怎么轉(zhuǎn)Object嘛,到這里,成功發(fā)生異常
到了這里,已經(jīng)分析了異常的產(chǎn)生,再來想辦法解決吧,以后端的思維來看,不是叫你把Long轉(zhuǎn)為Object你就罷工嘛,你不知道要將id轉(zhuǎn)成啥,那我給你指定一下,提供一個(gè)只有id的構(gòu)造方法/函數(shù),你去執(zhí)行這個(gè)構(gòu)造方法不就可以了
文章來源:http://www.zghlxwxcb.cn/news/detail-764069.html
再重啟項(xiàng)目,前端再執(zhí)行新增,就正常了?文章來源地址http://www.zghlxwxcb.cn/news/detail-764069.html
到了這里,關(guān)于value of type `java.lang.Long` from Object value (token `JsonToken.START_OBJECT`)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!