使用 Spring RestTemplate 获取 JSON 对象列表
2022-08-31 05:46:27
我有两个问题:
- 如何使用Spring RestTemplate映射JSON对象列表。
- 如何映射嵌套的 JSON 对象。
我正在尝试通过遵循 http://spring.io/guides/gs/consuming-rest/ 教程来消耗 https://bitpay.com/api/rates。
我有两个问题:
我正在尝试通过遵循 http://spring.io/guides/gs/consuming-rest/ 教程来消耗 https://bitpay.com/api/rates。
首先定义一个对象来保存数组中返回的实体。例如:
@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[]。
也许这样...
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;
}
ResponseEntity
是添加状态代码的扩展。也用于方法。在此类中,由 和 返回。HttpEntity
HttpStatus
RestTemplate
@Controller
RestTemplate
getForEntity()
exchange()