首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Spring获取RestTemplate对象列表

使用Spring获取RestTemplate对象列表
EN

Stack Overflow用户
提问于 2014-05-15 17:17:51
回答 14查看 451.1K关注 0票数 223

我有两个问题:

Spring如何使用 RestTemplate.

  • How映射
  • 对象列表以映射嵌套的JSON对象。

通过遵循http://spring.io/guides/gs/consuming-rest/的教程,我正在尝试使用https://bitpay.com/api/rates

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2014-05-15 18:18:59

也许这样..。

代码语言:javascript
复制
ResponseEntity<Object[]> responseEntity = restTemplate.getForEntity(urlGETList, Object[].class);
Object[] objects = responseEntity.getBody();
MediaType contentType = responseEntity.getHeaders().getContentType();
HttpStatus statusCode = responseEntity.getStatusCode();

RequestMapping的控制器代码

代码语言:javascript
复制
@RequestMapping(value="/Object/getList/", method=RequestMethod.GET)
public @ResponseBody List<Object> findAllObjects() {

    List<Object> objects = new ArrayList<Object>();
    return objects;
}

ResponseEntityHttpEntity的扩展,它添加了HttpStatus状态代码。在RestTemplate以及@Controller方法中使用。在RestTemplate中,这个类由getForEntity()exchange()返回。

票数 246
EN

Stack Overflow用户

发布于 2015-08-12 00:29:54

首先定义一个对象来保存返回到数组中的实体。例如:

代码语言:javascript
复制
@JsonIgnoreProperties(ignoreUnknown = true)
public class Rate {
    private String name;
    private String code;
    private Double rate;
    // add getters and setters
}

然后,您可以使用该服务,并通过以下方式获取强类型列表:

代码语言:javascript
复制
ResponseEntity<List<Rate>> rateResponse =
        restTemplate.exchange("https://bitpay.com/api/rates",
                    HttpMethod.GET, null, new ParameterizedTypeReference<List<Rate>>() {
            });
List<Rate> rates = rateResponse.getBody();

上面的其他解决方案也可以,但我喜欢得到一个强类型的列表,而不是一个Object[]。

票数 372
EN

Stack Overflow用户

发布于 2014-11-07 15:25:33

对我来说,这是可行的

代码语言:javascript
复制
Object[] forNow = template.getForObject("URL", Object[].class);
    searchList= Arrays.asList(forNow);

其中Object是您想要的类

票数 82
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23674046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档