我正在使用Jackson 1.9.6(codehaus)在Spring MVC应用程序中对响应正文进行JSON序列化,但是在寻找一种配置漂亮打印的方法时遇到了麻烦。我已经找到的所有代码示例(例如this和this)都涉及到ObjectMapper
或ObjectWriter
的实例化,但是我目前不将这些实例化用于其他任何事情。 。我什至不知道将这段代码放在哪里。通过注释将POJO序列化为JSON,可以处理我所有的Jackson配置。
有没有办法在批注中指定漂亮的打印?我想他们会把它放在@JsonSerialize中,但是看起来不像。
我要序列化的类如下所示:
@JsonAutoDetect
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class JSONObject implements Serializable{...}
我的Spring控制器方法如下所示:
@RequestMapping(method = RequestMethod.GET)
public @ResponseBody List<Object> getMessagesAndUpdates(HttpServletRequest request, HttpServletResponse response) {
JSONObject jsonResponse = new JSONObject();
.
.
.
//this will generate a non-pretty-printed json response. I want it to be pretty-printed.
return jsonResponse;
}
最佳答案
我搜索并搜索了类似的东西,而我能找到的最接近的东西是将此bean添加到了我的应用程序上下文配置中(注意:我正在使用Spring Boot,所以我不是100%确定这将在非Spring Boot应用程序中按原样工作):
@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder()
{
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.indentOutput(true);
return builder;
}
我认为,这是最干净的解决方案,并且效果很好。
关于json - 我可以从注释或Spring MVC Controller 配置Jackson JSON pretty-print 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14878890/