问题描述
我正在使用 RestTemplate 调用外部 API。 这是 API 调用的结果:
{
"results": [
{
"code": "UDE","usergroups": [
{
"name": "Some name","users": [
{
"id": 457,"login": "uid34",}
]
}
]
}
]
}
我只对获得 users
的平面列表感兴趣。
- 我不想返回
JSON String
和用户gson
来定位users
节点。 - 我想避免创建太多包装器。
这就是我到目前为止所做的:
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ToString
@JsonInclude(Include.NON_NULL)
@JsonRootName("usergroups")
public class UserGroup{
@JsonProperty("users")
private List<User> users = new ArrayList<User>();
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Response<T> {
@JsonProperty("results")
private List<T> results= new ArrayList<>();
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User{
private Integer id;
private String login;
}
ResponseEntity<Response<UserGroup>> response = restTemplate.exchange(url,HttpMethod.GET,entity,new ParameterizedTypeReference<Response<UserGroup>>(){});
List<User> users = response.getBody().getResults()
.stream()
.map(UserGroup::getUsers)
.flatMap(Collection::stream)
.collect(Collectors.toList());
API 调用工作正常,但对于我拥有的所有 users
,UserGroup
属性始终为空。
我究竟做错了什么?
感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)