SpringFramework/Spring

ObjectMapper List 변환

lovineff 2021. 3. 16. 16:39

 

ObjectMapper를 사용하여 List<객체>로 변환하는 방법을 제시한다.

// when
MockHttpServletResponse response = mockMvc.perform(get("/abc/news").accept(MediaType.APPLICATION_JSON))
        .andExpect(status().isOk())
        .andReturn()
        .getResponse();

// then
// 방법 1
PoolContent[] poolContents = objectMapper.readValue(response.getContentAsString(), PoolContent[].class);
for(PoolContent poolContent : poolContents){
    System.out.println(poolContent.getTitle());
}

// 방법 2
List<PoolContent> arrayList = Arrays.asList(objectMapper.readValue(response.getContentAsString(), PoolContent[].class));
arrayList.forEach(poolContent -> System.out.println(poolContent.getTitle()));


// 방법 3
List<PoolContent> list = objectMapper.readValue(response.getContentAsString(), new TypeReference<List<PoolContent>>() {});
list.forEach(poolContent -> System.out.println(poolContent.getTitle()));