2017-07-17 70 views
0

不顯示我使用下面的代碼,我的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) 

這是返回到春節控制器RequestMapping這是註釋像下面

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

當我在記錄器中打印這個響應時,我可以看到相當好的JSON格式以及縮進。 然而,當我打的休息網址在瀏覽器中看到的響應見過\ 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上沒有使用註釋的選項。

+0

'\ r \ n'是Windows使用的方式來創建一箇中斷線。用於讀取日誌文件的編輯器將它們轉換爲新行。 – davidxxx

+0

表示同意,但爲什麼布魯塞爾不能顯示漂亮的印刷,而是將\ r \ n顯示爲字符。我試圖用「」替換這些\ r \ n字符,但這隻會讓它們消失。 JSON仍然沒有被看作漂亮的打印,但在單行中 –

回答

0

[解決方法] -

我能想出了一個解決方案,看起來是奇怪的,但它的工作。

我修改了春天如下RequestMapping:所以現在它就像我的反應是JSON的純文本表示

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

當我使用Spring Web/MVC時,我嘗試過使用application/json。但不知何故,似乎application/json不適用於Spring Boot。