使用 Spring RestTemplate 获取 JSON 对象列表

新手上路,请多包涵
阅读 771
2 个回答

也许这样…

 ResponseEntity<Object[]> responseEntity = restTemplate.getForEntity(urlGETList, Object[].class);
Object[] objects = responseEntity.getBody();
MediaType contentType = responseEntity.getHeaders().getContentType();
HttpStatus statusCode = responseEntity.getStatusCode();

控制器代码 RequestMapping

 @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() 返回。

原文由 kamokaze 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

@JsonIgnoreProperties(ignoreUnknown = true)
public class Rate {
    private String name;
    private String code;
    private Double rate;
    // add getters and setters
}

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

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

上面的其他解决方案也可以工作,但我喜欢返回强类型列表而不是 Object[]。

原文由 Matt 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题