2017-03-29 4 views
1

MappingJackson2HttpMessageConverter 뒤에 오는 규칙이 무엇인지 알고 싶습니다 (@ResponseBody에 의해 주석 처리 된 컨트롤러 메소드에서 반환 된) 객체를 json으로 변환 하시겠습니까? 어떤 상황에서는 classpath (pom.xml)에 Jackson2 만 있으면 충분하고 컨트롤러는 객체를 반환합니다. 예 : 문자열 또는 모음 List<Employee> 브라우저에 json 형식으로 정상적으로 전송됩니다. 하지만, 다른 경우에는 ObjectMapper을 사용하고 writeValueAsString 메서드를 사용하여 문자열을 얻은 다음 응답으로 반환하는 것으로 묻는 경우가 있습니다 (예 : HashMap)! MappingJackson2HttpMessageConverter가 변환 자체를 수행 할 수 있는지 또는 수동으로 Objectmapper을 사용하여 변환해야 하는지를 결정할 때 사용하는 암시 적 규칙이 있습니까? 내부적으로 String 필드가 거의없는 pojo 객체가 있다면 ObjectMapper 등을 사용해야할까요? 내 pojo 클래스에 List<CustomObject> 및 일부 HashMap과 같은 필드가있는 경우 필요하지 않습니까? 예 : example 1은 컨트롤러 메소드에서 List<Company>을 json으로 변환하기 위해 ObjectMapper를 사용하지 않습니다. 그러나 example 2ObjectMapperwriteValueAsString이 필요합니까? 더하기, 이제는 반환 유형이 HashMap 대신 String입니다!Spring Rest의 @ResponseBody 주석이 달린 컨트롤러 메소드에서 pojo를 json으로 변환하는 데 필요한 Jackson의 ObjectMapper를 사용하는 수동 매핑은 언제입니까?

답변

0

@RestController를 사용하고 클래스 경로에 jackson이 있으면 모든 것이 정상적으로 처리됩니다. https://spring.io/guides/gs/rest-service/https://www.leveluplunch.com/java/tutorials/014-post-json-to-spring-rest-webservice/

+0

을 참조하십시오. 모든 종류의 반환 유형에서 작동합니까? Strings/Lists/Maps가있는 복잡한 POJO 객체? 그리고'ObjectMapper '를 사용할 필요가 없습니까? 그렇다면 컨트롤러 메소드에서 언제 'ObjectMapper'를 사용해야합니까? 추신. 이 링크는 또한 당신이 말한 것을 뒷받침합니다. http://stackoverflow.com/questions/10284025/spring-mvc-is-it-possible-to-return-a-mapstring-object-dynamically-converted –

+0

매우 드문 것입니다. 당신이해야 할 일은 잭슨과 @RestController뿐입니다. –

+0

그래서'@ Controller'에서'ObjectMapper'와 'writeValueAsString'을 사용하는 유스 케이스가 될 수 있을까요? –