Java用\ n来检测和替换换行符

时间:2015-11-05 16:26:37

标签: java json encode

我从我的数据库中获取此字符串:

AnyObject

现在我需要将所有LineBreaks编码为\ n所以我可以从String中生成适当的JSON对象,因为JSON不支持换行符。如何使用\ n?

检测并替换现有String中的所有LineBreak

我已经尝试过.replace()和replaceAll()。但是我需要一种方法来检测换行符,所以我可以替换它们。

其他一些信息:

在尝试了这里提到的几个替换函数后,JSON仍然如下所示:

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

看起来应该是

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

2 个答案:

答案 0 :(得分:0)

如果您从数据库中获取的String被称为jsonString,则可以使用此正则表达式:

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

这将匹配最常见的换行符\r\n \n \r。请注意,这也将用一个空行替换多个空行。

答案 1 :(得分:0)

我为我解决了这个问题。不幸的是,似乎.replace()如上所述在其他评论和答案中完成了工作,但map.put()操作再次恢复了更改。

要解决此问题,我使用StringEscapeUtils中的org.apache.commons.lang3.StringEscapeUtils并使用escapeJson()方法,如下所示:

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