• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

List, Map으로 응답 시의 메시지 컨버터

22.11.17 13:37 작성 조회수 177

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예

[질문 내용]
여기에 질문 내용을 남겨주세요.

@RestController
public class TestController {

    @GetMapping("/get-string")
    public String getString() {
        return "hello";
    }

    @GetMapping("/get-model")
    public User getUser() {
        User user = new User("hello", 20);
        return user;
    }

    @GetMapping("/get-list")
    public List<User> getList() {
        List<User> userList = new ArrayList<>();
        User userA = new User("hello1", 20);
        User userB = new User("hello2", 20);
        userList.add(userA);
        userList.add(userB);
        return userList;
    }

    @GetMapping("/get-map")
    public Map<Integer, User> getMap() {
        Map<Integer, User> userMap = new HashMap();
        User userA = new User("hello1", 20);
        User userB = new User("hello2", 20);
        userMap.put(1, userA);
        userMap.put(2, userB);

        return userMap;
    }
}

코드가 위와 같을 때,

/get-string에서는 문자 처리이므로 StringHttpMessageConverter가 동작하고,

/get-model에서는 객체 처리이므로 MappingJackson2HttpMessageConverter가 동작함을 알았습니다.

그런데 /get-list, /get-map에서는 어떤 메시지 컨버터가 작동하게 되는 것인지 잘 모르겠습니다.

포스트맨을 이용해 출력해 봤을 때는 JSON 형식으로 나왔는데, 그러면 ListMap으로 응답하는 경우에도 MappingJackson2HttpMessageConverter가 작동하게 되는 것 인가요?

⬇️ List 리턴 시

스크린샷 2022-11-17 오후 1.33.27.png

⬇️ Map 리턴 시

스크린샷 2022-11-17 오후 1.32.55.png

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2022.11.17

안녕하세요. Hyunjoon Choi 님, 공식 서포터즈 y2gcoder입니다.

그러면 ListMap으로 응답하는 경우에도 MappingJackson2HttpMessageConverter가 작동하게 되는 것 인가요?

 

스프링은 기본적으로 객체를 Json으로 반환해주기 때문에 MappingJackson2HttpMessageConverter를 사용합니다. 여기서 객체에는 LIst, Map 도 포함됩니다 :)


감사합니다.

devholic님의 프로필

devholic

질문자

2022.11.18

감사합니다!