我有两个问题:
如何使用Spring RestTemplate映射JSON对象列表。 如何映射嵌套的JSON对象。
我试图消费https://bitpay.com/api/rates,从http://spring.io/guides/gs/consuming-rest/遵循教程。
我有两个问题:
如何使用Spring RestTemplate映射JSON对象列表。 如何映射嵌套的JSON对象。
我试图消费https://bitpay.com/api/rates,从http://spring.io/guides/gs/consuming-rest/遵循教程。
当前回答
也许这样……
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()返回。
其他回答
对于那些使用Spring + Kotlin的人来说,下面是翻译:
val rates = restTemplate.exchange("https://bitpay.com/api/rates", HttpMethod.GET, null, object : ParameterizedTypeReference<List<Rate>>() {}).body!!
我从这个帖子https://jira.spring.io/browse/SPR-8263找到了工作。
基于这篇文章,你可以返回一个类似这样的列表:
ResponseEntity<? extends ArrayList<User>> responseEntity = restTemplate.getForEntity(restEndPointUrl, (Class<? extends ArrayList<User>>)ArrayList.class, userId);
对我来说这很有效
Object[] forNow = template.getForObject("URL", Object[].class);
searchList= Arrays.asList(forNow);
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()返回。
考虑一下这个答案,特别是如果你想在列表中使用泛型 Spring RestTemplate和泛型类型ParameterizedTypeReference集合,如List<T>