2015-11-05 97 views
-1

我從我的數據庫字符串:Java的檢測和替換 n換行符

Test Action Item ZusammenführenTest Action Item ZusammenführenTest Action Item ZusammenführenTest Action Item ZusammenführenTest Action Item ZusammenführenTest Action Item Zusammenführen 
fsd 
fsa 
df 
asdf 
as 
dfs 
fd 
sad 
f 
sadf 
sad 

現在我需要編碼所有換行符爲\ n這樣我就可以產生正確的JSON對象出字符串,因爲JSON沒有按不支持換行符。如何使用\ n檢測並替換現有字符串中的所有LineBreaks?

我已經嘗試過.replace()和replaceAll()。但我需要一種方法來檢測換行符首先,我可以替換它們。

一些額外的信息:

試圖在這裏提到的幾種替代函數後,JSON仍然是這樣的:

{ "id": 182, 
    "status": "eing", 
    "text": "KORE_AI_6", 
    "beschreibung": "Eins 
Zwei 
Drei", 
     "tags": "KORE" 
     }, 

而且它應該看起來像

{ "id": 182, 
    "status": "eing", 
    "text": "KORE_AI_6", 
    "beschreibung": "Eins\nZwei\nDrei", 
    "tags": "KORE" 
    }, 
+1

如果換行符你不'\ N',它們是什麼? – khelwood

+0

不幸的是,搜索\ n死亡沒有得到任何結果。我不知道,這就是爲什麼我問。 –

+0

你還可以發佈搜索'\ n'的代碼嗎?問題中的字符串是從數據庫中獲得的實際字符串還是使用查看器看到的內容? –

回答

0

如果String你從數據庫中得到的名字叫jsonString你可以用這個正則表達式:

String result = jsonString.replaceAll("[\r\n]+", "\n"); 

這將匹配最常見的換行符\r\n\n\r。請注意,這也將用一條空行代替多條空行。

+0

我試過你的解決方案,但JSON字符串仍然有導致客戶端的JSON解析器錯誤的換行符。 –

0

我爲我解決了這個問題。不幸的是,似乎.replace()像上面在其他評論和回答中所述的那樣完成了這項工作,但在map.put()操作之後再次恢復了更改。

爲了解決它,我用從org.apache.commons.lang3.StringEscapeUtilsStringEscapeUtils和所使用的方法escapeJson()像這樣:

escapeUtils.escapeJson(map.get("BESCHREIBUNG").toString())