如何解决Jackson反序列化贝娄JSON属性
我想为给定的fetchMultiple(ParameterizedTypeReference<List<T>> responseType)
List<T>
,在这种情况下,我想直接获取一个List<Account>
,但由于帐户列表封装在另一个帐户中,所以我遇到了错误对象,如下所示:
{
"accounts": [
{
"accountUid": "c75deb59-5d52-4a23-af7b-fce29927ce9d","defaultCategory": "b4189da5-7688-42d0-86e3-14ae9031e01d","currency": "GBP","createdAt": "2020-08-05T16:50:50.536Z"
}
]
}
有一些Jackson批注以某种方式对其进行过滤,以便进行如下处理:
[
{
"accountUid": "c75deb59-5d52-4a23-af7b-fce29927ce9d","createdAt": "2020-08-05T16:50:50.536Z"
}
]
POJO
@Data
public class Account {
private String accountUid;
private String defaultCategory;
private String currency;
private String createdAt;
}
RestRequestTemplate.java
public List<T> fetchMultiple(ParameterizedTypeReference<List<T>> responseType) {
return new RestTemplate().exchange(this.url,this.httpMethod,this.request,responseType).getBody();
}
AccountsServiceImpl.java
public List<Account> getAccounts() {
RestRequestTemplate restRequestTemplate = new RestRequestTemplate(GET_ACCOUNTS,HttpMethod.GET,Collections.EMPTY_MAP);
return restRequestTemplate.fetchMultiple(new ParameterizedTypeReference<List<Account>>() {});
}
解决方法
确实有一个注释可以忽略根对象。它称为@JsonUnwrapped
。用该注释注释您的方法,并且您的json
应该没有根对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。