何时使用Jackson的ObjectMapper进行手动映射,以便在Spring Rest的@ResponseBody注释控制器方法中将pojo转换为json?

时间:2017-03-29 13:35:04

标签: json spring-mvc jackson spring-rest jackson2

我想知道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需要ObjectMapperwriteValueAsString?另外,它的返回类型现在是String而不是HashMap

1 个答案:

答案 0 :(得分:0)

如果你使用@RestController并且你在类路径中有jackson,那么一切都将被处理好。请参阅https://spring.io/guides/gs/rest-service/https://www.leveluplunch.com/java/tutorials/014-post-json-to-spring-rest-webservice/