从domino获取rtf字段和java for JSON

时间:2015-07-08 08:53:21

标签: java json xpages mime rtf

我正在尝试将JSON保存为多米诺骨牌文档。除处理富文本格式字段外,一切正常。问题是:我的html编辑器在每个html开始标记之后放置换行符和制表符,所以当我尝试获取保存该html的rtf时,它还包含换行符,制表符等。 我试过更换它们,但什么也没发生。

这是rtf的样子(并且不能改变):

<p> 
   some sample text</p>

这就是我试图从rtf获取数据的方式:

somestring = viewdata.getDocument().getMimeEntity("myField").getContentAsText();

我如何尝试替换换行符:

somestring.replaceAll("\n", "");
somestring.replaceAll("\\n", "");
somestring.replaceAll("\\\n", "");

我想得到像

这样的东西
<p>some sample text</p>

我也尝试过jsonGenerator会为我做这个问题的方法。它返回json满/ t和/ n个字符。而且我还有一些jsonGenerator的问题,因为我的JSON有多个深度级别。因此,返回没有换行符和制表符的字符串可能是最简单的解决方案。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

我可以想象可能涉及到一些事情。

我怀疑第一个是replaceAll将字符串解释为正则表达式。在这种情况下,仅使用replace更安全;尽管名称,它也替换了所有出现,但相反将内容视为文字字符串。

另一个可能是该字符串包含两个字符的Windows CRLF。我对此不太确定,但您也可以.replace("\r", "")来确定。

最后,您是否将replace调用的结果分配给String变量?它没有就地修改字符串,因此这是一个常见的陷阱。

另外,请注意您获取MIME RT字段内容的方式。当内容仅文本时,这将起作用,但是,当添加附件或嵌入图像时,MIME结构会更改,顶级会变为multipart/relatedmultipart/mixed实体,并且内容将移至儿童。寻找正文内容的最安全方法是对MIMEEntitygetContentType()textgetContentSubType()的{​​{1}}进行深度优先递归搜索。