![](/img/trans.png)
[英]How to get response as JSON with ResponseEntity in Java?
[英]Java - Get one item from ResponseEntity List
我的ResponseEntity
返回一个<List>
,我只想访问列表中的一项,但是.getBody()
方法返回所有数据。
RestTemplate restTemplate = new RestTemplate();
ResponseEntity <List> result = restTemplate.getForEntity(uri, List.class);
LOGGER.info(result.getBody());
结果看起来像这样:
[{name: data, id: data}]
我想获取id
如何从列表中返回特定项目而不使用索引。
该主体将包含整个响应主体,要获取单个对象,您需要更改服务以仅返回单个对象。
如果您不能这样做,请创建一个简单的Java流以返回第一个元素。
yourList.stream().filter(element -> --any condition here if needed--).findFirst().map(item -> item.id).orElse(null)
要获得列表,请使用id和String这两个字段创建对象。
其余的调用将是List yourList = asList(restTemplate.getForObject(url,YourObject []。class));
您的回答是[{name: data, id: data}]
,表示对象{name:data,id:data}的列表 。
现在,Java类将
public class ResponseItem{
private String name;
private int id;
// getter
// setter
}
您的Rest呼叫者代码将如下所示:
List<ResponseItem> response=new ArrayList<>();
RestTemplate restTemplate = new RestTemplate();
ResponseEntity <?> result = restTemplate.getForEntity(uri, response.getClass());
LOGGER.info(result.getBody());
现在您有了项目列表。 只需使用List<ResponseItem>
投射result.getBody()
。 如果只需要id,则将ResponseItem
类的id字段注释掉
List<Integer> ids=new ArrayList<>();
for (ResponseItem item:result
) {
ids.add(item.getId());
}
现在您只有id字段进入ids
列表
希望这个能对您有所帮助
谢谢 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.