使用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