一尘不染

使用Spring RestTemplate获取JSON对象的列表

java

我有两个问题:

  1. 如何使用Spring RestTemplate映射JSON对象列表。
  2. 如何映射嵌套的JSON对象。

阅读 528

收藏
2020-03-23

共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;
}

ResponseEntity是对扩展名的HttpEntity添加HttpStatus状态代码。使用RestTemplate以及@Controller方法。在RestTemplate此类中,由getForEntity()和返回exchange()

2020-03-23
一尘不染

首先定义一个对象来保存实体回到数组中。

@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 []。

2020-03-23