簡體   English   中英

從Json Response轉義\\ n和\\“

[英]Escape \n and \" from Json Response

請幫助我解決在json響應中刪除\\ n和\\“的問題。我的代碼是:

我已經使用代碼創建了以下json字符串...

String json = new GsonBuilder().serializeNulls().setPrettyPrinting().disableHtmlEscaping().create().toJson(data);

上面創建的Json的內容如下所示:

String json = "{\n \"transactionDetail\": {\n \"transactionID\": \"123456\",\n \"transactionTimestamp\": \"2015-07-08T11:44:19Z\",\n \"inLanguage\": \"en-US\",\n \"serviceVersion\": \"1.0\",\n \"additionalDetails\": null\n }} ";

返回javax.ws.rs.core.Response:

return Response.status(Status.OK).entity(json).type(MediaType.APPLICATION_JSON).build();

我在其他客戶端中看到的是swagger / postman中的輸出,與上述字符串變量json中的內容如何出現的方式相同,新行和引號未正確替換。 如果我將sysout放在命令提示符下,則使用正確的換行符和引號將字符串整齊地打印出來。 如何在大寫或郵遞員中發回正確替換新行和雙引號的響應。

嘗試刪除setPrettyPrinting()。 這將刪除所有格式,即\\ n。 至於生成的字符串,請檢查變量“數據”的類型是什么。 如果“數據”實際上是一個json字符串,而您正在使用Gson對其進行序列化,則它將再次轉義該json字符串中的所有引號,即雙重序列化。 例如,“數據”應該是一個像哈希圖這樣的Java對象,然后您可以序列化為json。 如果這些都不起作用,請嘗試使用Jackson Json庫。

暫無
暫無

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

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