Get list of JSON objects with Spring RestTemplate
First define an object to hold the entity coming back in the array.. e.g.
@JsonIgnoreProperties(ignoreUnknown = true)public class Rate { private String name; private String code; private Double rate; // add getters and setters}
Then you can consume the service and get a strongly typed list via:
ResponseEntity<List<Rate>> rateResponse = restTemplate.exchange("https://bitpay.com/api/rates", HttpMethod.GET, null, new ParameterizedTypeReference<List<Rate>>() { });List<Rate> rates = rateResponse.getBody();
The other solutions above will also work, but I like getting a strongly typed list back instead of an Object[].
Maybe this way...
ResponseEntity<Object[]> responseEntity = restTemplate.getForEntity(urlGETList, Object[].class);Object[] objects = responseEntity.getBody();MediaType contentType = responseEntity.getHeaders().getContentType();HttpStatus statusCode = responseEntity.getStatusCode();
Controller code for the RequestMapping
@RequestMapping(value="/Object/getList/", method=RequestMethod.GET)public @ResponseBody List<Object> findAllObjects() { List<Object> objects = new ArrayList<Object>(); return objects;}
ResponseEntity
is an extension of HttpEntity
that adds a HttpStatus
status code. Used in RestTemplate
as well @Controller
methods.In RestTemplate
this class is returned by getForEntity()
and exchange()
.
For me this worked
Object[] forNow = template.getForObject("URL", Object[].class); searchList= Arrays.asList(forNow);
Where Object is the class you want