繁体   English   中英

Java-从ResponseEntity列表中获取一项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM