我想知道MappingJackson2HttpMessageConverter将对象(从@ResponseBody
注释的控制器方法返回)转换为json后遵循的规则是什么?在某些情况下,我看到只在类路径(pom.xml)上使用Jackson2就足够了,控制器只返回其对象,例如:字符串或集合,例如List<Employee>
成功以json格式浏览器。但是,在其他情况下,我已经看到解决方案要求我使用ObjectMapper
并使用方法writeValueAsString
来获取字符串并将其作为响应返回,例如HashMap
s!是否有一些隐式规则,MappingJackson2HttpMessageConverter使用它来决定它是否能够自己进行转换,或者我需要使用Objectmapper
手动执行转换?如果我有一个pojo对象,内部只有很少String
个字段,我还需要使用ObjectMapper等吗?如果不是,那么如果我的pojo类包含一些List<CustomObject>
和一些HashMap
s等字段,我是否需要它?
例如:example 1不使用任何ObjectMapper将List<Company>
转换为控制器方法中的json。但是,example 2需要ObjectMapper
和writeValueAsString
?另外,它的返回类型现在是String
而不是HashMap
!
答案 0 :(得分:0)
如果你使用@RestController并且你在类路径中有jackson,那么一切都将被处理好。请参阅https://spring.io/guides/gs/rest-service/和https://www.leveluplunch.com/java/tutorials/014-post-json-to-spring-rest-webservice/