java - 使用java从domino获取rtf字段以获取JSON

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

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

最佳答案

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

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

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

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

顺便说一句,请注意获取 MIME RT 字段内容的方式。当内容仅为文本时,这将起作用,但是,当添加附件或嵌入图像时,MIME 结构会发生变化,顶层将变为 multipart/latedmultipart/mixed code> 实体,内容被移动到子实体。查找正文内容的最安全方法是对第一个 MIMEEntity 进行深度优先递归搜索,其中 getContentType()textgetContentSubType()html

关于java - 使用java从domino获取rtf字段以获取JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31287858/

相关文章:

Java获取方法移动到前面而不是后面

java - 如何使用 Json 响应显示日期到 Ext Js 列

arrays - 类数组错误 - '' 表达式类型不明确,没有更多上下文”

java - 在 Xpages 中从服务器端 javascript/java 调用 C 代码?

javascript - 从 Xpages 中的 "view"开始计算父文档

java - 在Java中,repaint()不会调用paintComponent()

java - 反编译Java项目并编译

java - SurfaceHolder导致闪烁

json - 在 go 中,什么是 json.Unmarshal 最大深度?

java - 如何在 XPages 中控制绑定(bind)到作用域变量的数值类型