restTemplate.exchange返回json
时间: 2023-03-19 07:25:09 浏览: 176
当您使用 `RestTemplate` 对象发送 HTTP 请求时,可以通过调用 `exchange()` 方法来执行请求并获得响应。该方法返回一个 `ResponseEntity` 对象,该对象包含响应的 HTTP 状态码、HTTP 响应头和响应体。
如果您的 API 要求返回 JSON 格式的响应体,您可以使用 `exchange()` 方法中的 `ParameterizedTypeReference` 参数来指定响应体的类型为 `ResponseEntity<YourJsonClass>`。其中,`YourJsonClass` 是您期望反序列化为的 JSON 类型。在处理响应时,您可以使用 `getBody()` 方法来获取反序列化后的 JSON 对象。
以下是使用 `RestTemplate` 发送 HTTP GET 请求并获得 JSON 响应的示例代码:
```java
RestTemplate restTemplate = new RestTemplate();
String url = "http://your-api-url.com/api/your-endpoint";
ParameterizedTypeReference<ResponseEntity<YourJsonClass>> responseType =
new ParameterizedTypeReference<ResponseEntity<YourJsonClass>>() {};
ResponseEntity<YourJsonClass> response = restTemplate.exchange(url, HttpMethod.GET, null, responseType);
YourJsonClass responseBody = response.getBody();
```
在这个示例中,我们使用了 `ParameterizedTypeReference` 来指定响应体的类型为 `ResponseEntity<YourJsonClass>`。`YourJsonClass` 是您期望反序列化为的 JSON 类型。您可以将其替换为您自己的类型。
注意,您需要使用 `HttpMethod.GET` 或其他适当的 HTTP 方法来发送请求。在此示例中,我们使用了 `null` 作为请求参数,因为这是一个 GET 请求,不需要传递请求体。
最后,我们使用 `response.getBody()` 方法来获取反序列化后的 JSON 对象。
阅读全文