RestTemplate으로 JSON 객체 리스트 가져오기 (매핑)
이 글은 ParameterizedTypeReference 공부가 목표이다.
JSON Array 를 3가지 (객체 배열, POJO 배열, POJO 리스트) 로 바꾸는 것을 살펴보자.
아래를 웹 요청시 받는 JSON으로 가정하자.
[{
"id": 1,
"name": "user1",
}, {
"id": 2,
"name": "user2"
}]매핑에 사용될 User 객체
public class User {
private int id;
private String name;
// getters and setters..
}유저 관련 서비스 인터페이스
public class UserConsumerServiceImpl implements UserConsumerService {
private final RestTemplate restTemplate;
public UserConsumerServiceImpl(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
...
}1 객체 배열 매핑
타입을 Object[]로 지정
2 POJO 배열 매핑
타입을 User[].class 로 지정
3 POJO 리스트 매핑
앞선 두가지 방은 Object 든 User 든 스프링이 런타임시 타입 정보를 알 수있다. 하지만, 제너릭 정보는 런타임시 사라지기에 List<User>.class 를 위처럼 그대로 사용하면 안된다. ParameterizedTypeReference 를 사용한다.
참고 자료
https://www.baeldung.com/spring-resttemplate-json-list
Last updated