apachecamel:replace函数

apachecamel:replace函数,replace,apache-camel,transform,Replace,Apache Camel,Transform,我想在ApacheCamel中使用replace函数,但在这方面遇到了问题。这是我的密码: "firstName" : "aaa", "lastName" : [] 我的欲望输出是这样的: "firstName" : "aaa", "lastName" : "" 我使用以下代码进行转换: <transform> <simple>${body.replace("[]","")}</simple> </transform> 我也用了“但不起作

我想在ApacheCamel中使用replace函数,但在这方面遇到了问题。这是我的密码:

"firstName" : "aaa",
"lastName" : []
我的欲望输出是这样的:

"firstName" : "aaa",
"lastName" : ""
我使用以下代码进行转换:

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

我也用了“但不起作用”。提前感谢

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

但是,不起作用,空双引号不会显示在结果中。也许它们被“计算为空”

但是,您可以通过在第一步中替换空括号来执行变通方法,用“特殊辅助字符”清空双引号,以确保替换字符串不能被解释为空。我在下面的示例中使用了加号(+)

第二步中,您可以将辅助字符替换为零,因此空双引号保留在结果中

.transform(simple("${body.replace('[]', '+\"\"')}"))
.transform(simple("${body.replace('+', '')}"))
这对我有用

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

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

您是否尝试过将单引号置于双引号之外?所以
${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" : ""