繁体   English   中英

阿帕奇骆驼:替换功能

[英]apache camel: replace function

我想在Apache骆驼中使用替换功能,但是有麻烦。 这是我的代码:

"firstName" : "aaa",
"lastName" : []

和我的愿望输出是这样的:

"firstName" : "aaa",
"lastName" : ""

我使用以下代码进行转换:

<transform> 
<simple>${body.replace("[]","")}</simple> 
</transform>

但问题不是显示双引号,实际上我得到了:

"firstName" : "aaa",
"lastName" :

我也使用了“,但没有用。 提前致谢

我猜正确的替换调用将包含转义的双引号(我使用Java DSL)

.transform(simple("${body.replace('[]', '\"\"')}"))

但这不起作用 ,结果中不会显示空的双引号。 也许他们被“评估为空”。

Original body: "firstName" : "aaa" "lastName" : []
Transformed body: "firstName" : "aaa" "lastName" :

但是,您可以通过以下方法解决此问题第一步 ,用“特殊帮助字符”替换双引号,以确保替换字符串不能解释为空。 在下面的示例中,我使用了加号(+)。

第二步中,您可以不使用任何替换辅助字符,因此空双引号会保留在结果中。

.transform(simple("${body.replace('[]', '+\"\"')}"))
.transform(simple("${body.replace('+', '')}"))

这对我有用。

Original body: "firstName" : "aaa" "lastName" : []
Transformed body: "firstName" : "aaa" "lastName" : ""

您将需要使用身体中没有辅助角色 否则,第二步可能会删除您不想删除的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM