目标是使用 PrettyPrint 从控制器做出 Jackson 格式响应。
这就是我的配置:
@EnableWebMvc
@Configuration
public class JacksonConfig extends WebMvcConfigurerAdapter {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
for (HttpMessageConverter<?> converter : converters) {
if (converter instanceof MappingJackson2HttpMessageConverter) {
MappingJackson2HttpMessageConverter jsonMessageConverter = (MappingJackson2HttpMessageConverter) converter;
ObjectMapper objectMapper = jsonMessageConverter.getObjectMapper();
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
}
}
}
}
这就是控制器的样子:
@RequestMapping(value = "/facebook", method = RequestMethod.POST, produces = "application/json")
public @ResponseBody Map<String, Object> authorizeViaFacebook(
@RequestParam(value = "token") String token) throws DefaultException{
Facebook facebook = this.facebookUtility.getFacebook(token);
org.springframework.social.facebook.api.User facebookUserProfile = facebook.userOperations().getUserProfile("me");
User loggedInUser = User.signInWithFacebookProfile(facebookUserProfile);
return ImmutableMap.of("token", loggedInUser.tokenForAuthentication(), "user", loggedInUser);
}
但无论我做什么,它仍然会直接打印出来。我尝试了不同的配置但仍然没有成功。
这是 Jackson 的 POM 文件:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.0</version>
</dependency>
Spring版本是4.2.4.RELEASE。
如何让 Jackson 使用 PrettyPrint 格式?