使用ObjectMapper
時,我收到以下錯誤反序列化對象:JSONMappingException - 不能desierialize Java對象
JSONMappingException不能構造 org.springframework.data.Page的實例,提出問題:抽象類型只能用 與附加類型信息實例化。
我試圖序列化JSON字符串轉換成春的數據對象org.springframework.data.Page
表示T
類型的頁。
User
類是一個簡單的POJO,其名稱爲first
和last
。 JSON字符串我反序列化是:
{
"content": [
{
"firstname": "John",
"lastname": "Doe"
},
{
"firstname": "Jane",
"lastname": "Doe"
}
],
"size": 2,
"number": 0,
"sort": [
{
"direction": "DESC",
"property": "timestamp",
"ascending": false
}
],
"totalPages": 150,
"numberOfElements": 100,
"totalElements": 15000,
"firstPage": true,
"lastPage": false
}
這導致異常:
Page<User> userPage = (Page<User>) new ObjectMapper().mapToJavaObject(json, new TypeReference<Page<User>>(){};
由於Page
是一個春天的對象,我不能改變它,我覺得做這個有點從我看到的方式不同這個問題在別處問過。有什麼想法嗎?
我試過反序列化,與我提出的原始答案。但是頁面實現具有不能從輸入JSON中反序列化的虛擬屬性,並且會導致進程失敗。最好的辦法是編寫一個自定義bean來將JSON反序列化,然後用這個自定義bean的值實例化一個PageImpl。 – Perception