Java Jackson没有以漂亮的打印格式显示

Java Jackson没有以漂亮的打印格式显示,java,json,spring-boot,jackson,Java,Json,Spring Boot,Jackson,我使用以下代码将Java对象转换为JSON: ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new SnapshotModule()).setTimeZone(timeZone) .enable(SerializationFeature.INDENT_OUTPUT) .disable(SerializationFeature.WRITE_DATES_AS_TI

我使用以下代码将Java对象转换为JSON:

ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new SnapshotModule()).setTimeZone(timeZone)
            .enable(SerializationFeature.INDENT_OUTPUT)
            .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
            .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
            .disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
            .enable(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS)
            .enable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY);
  String respJson = mapper .writerWithDefaultPrettyPrinter().writeValueAsString(obj)
这将返回到Spring控制器RequestMapping,如下所示

@RequestMapping(value = "/{xxx}/{xxx}/{xxx}/", method = RequestMethod.GET, produces = "application/json")
@ResponseBody
当我在logger中打印这个响应时,我可以很好地看到预先打印JSON格式以及缩进。 但是,当我在浏览器中点击Rest URL查看响应时,\r\n显示的是字符,而不是像这样缩进的实际新行-

[ {\r\n  \"XXX\" : {\r\n    \"XXX\" : \"XXX\",\r\n    \"XXX\" : { },\r\n    \"XXX\" : true\r\n  },\r\n  \"XXX\" : {\r\n    \"XXX\" : \"XXX\",\r\n    \"XXX\" : \"XXX\"\r\n  },\r\n  \"XXX\" : \"XXX\",\r\n  \"XXX\" : \"XXX\",\r\n  \"XXX\" : \"XXX\",\r\n  \"XXX\" : \"XXX\",\r\n  \"XXX\" : \"XXX\",\r\n  \"XXX\" : \"XXX\",\r\n  \"XXX\" : \"XXX\",\r\n  \"XXX\" : \"XXX\"\r\n} ]"
有人能帮我解释一下我的方法有什么问题吗。我甚至尝试使用gson库,结果是一样的。
请注意,由于我试图转换为json的对象是动态的,因此没有在pojo上使用注释的选项。

如果您只想在浏览器中漂亮地打印json,那么有很多插件可以为您这样做

[解决方案]-

我可以想出一个解决这个问题的办法,看起来很奇怪,但它成功了

我修改了Spring RequestMapping,如下所示:

@RequestMapping(value = "/{xxx}/{xxx}/{xxx}/", method = RequestMethod.GET, produces = "text/plain")
现在,我的响应类似于JSON的纯文本表示


当我使用SpringWeb/MVC时,我尝试过使用application/json。但不知何故,application/json似乎不适用于Spring引导。

\r\n是Windows用来进行换行的方式。您用来读取日志文件的编辑器会将它们转换为新行。同意,但为什么broswer不能显示漂亮的打印,而是显示为\r\n字符。我试图用替换这些\r\n字符,但这只会使它们消失。JSON仍然不被认为是漂亮的印刷品,而是单行的