使用 java for JSON 从多米诺骨牌获取 rtf 字段

Getting rtf field from domino with java for JSON

我正在尝试制作 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 会为我处理的方法。它 returns json 充满了 /t 和 /n 字符。而且 jsonGenerator 我还有一些其他问题,因为我的 JSON 有不止一层的深度。因此返回不带换行符和制表符的字符串可能是最简单的解决方案。

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

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

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

另一个可能是字符串包含 two-character Windows CRLF。我不太确定这一点,但你也可以做一个 .replace("\r", "") 来确定。

最后,您是否将 replace 回调的结果分配回 String 变量?它不修改字符串 in-place,因此这是一个常见的陷阱。

顺便说一句,请注意获取 MIME RT 字段内容的方式。这在内容为 text-only 时有效,但是,当添加附件或嵌入图像时,MIME 结构发生变化,顶层变为 multipart/relatedmultipart/mixed 实体并且内容被移动到 child。查找正文内容的最安全方法是对第一个 MIMEEntity 进行 depth-first 递归搜索,其中 getContentType()textgetContentSubType()html.