以下のAPIのレスポンスボディを扱いやすくしたい
{
"id":"1",
"name":"田中"
}
方法
レスポンスボディに対応したプロパティを持つクラスを作成する
public class ApiResponseBody {
private String id;
private String name;
}
jacksonを導入する(今回はMaven)
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.13.1</version>
</dependency>
レスポンスボディを自作クラスのインスタンスにする
// APIにリクエスト
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("URL"))
.build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
// レスポンスボディをApiResponseBodyにパーシング
var objectMapper = new ObjectMapper();
var apiResponseBody = objectMapper.readValue(response.body(), ApiResponseBody.class);