杰克逊没有以漂亮的打印格式显示

时间:2017-07-17 07:03:54

标签: java json spring-boot jackson

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

city_name

返回Spring Controller RequestMapping,注释如下

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)

当我在logger中打印此响应时,我可以看到wellprint JSON格式以及缩进。 但是,当我在浏览器中点击Rest URL时,看到响应是用\ r \ n字符而不是带有缩进的实际新行 -

@RequestMapping(value = "/{xxx}/{xxx}/{xxx}/", method = RequestMethod.GET, produces = "application/json")
@ResponseBody

有人可以帮我解决我的做法有什么问题。我甚至尝试使用gson库,结果是一样的。 请注意,因为我试图转换为json的对象是动态的,所以没有选择在pojo上使用注释。

2 个答案:

答案 0 :(得分:0)

[解决方案] -

我可以找到一个解决方案,这看起来很奇怪,但它已经成功了。

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

@RequestMapping(value = "/{xxx}/{xxx}/{xxx}/", method = RequestMethod.GET, produces = "text/plain")

所以现在它就像我的回复是JSON的纯文本表示。

当我使用Spring Web / MVC时,我曾尝试使用application / json。但不知何故,似乎application / json不能用于Spring Boot。

答案 1 :(得分:-1)

如果您只是希望json在浏览器中打印漂亮,那么有很多插件可以帮助您。 https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc?hl=en