簡體   English   中英

傑克遜未以漂亮印刷格式顯示

[英]Jackson not displaying in Pretty Print format

我正在使用下面的代碼將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 Controller RequestMapping,如下所示

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

當我在記錄器中打印此響應時,我可以看到很好的prettyprint 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上使用注釋。

[解決方案]-

我可以想出一個解決方案,雖然看起來很麻煩,但還是可以解決的。

我修改了Spring RequestMapping如下:

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

所以現在我的響應就像是JSON的純文本表示形式。

當我使用Spring Web / MVC時,我曾嘗試使用application / json。 但是以某種方式看來application / json對於Spring Boot不起作用。

如果您只是想讓json在瀏覽器中漂亮地打印,那么有很多插件可以為您完成此任務。 https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc?hl=zh-CN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM