apachecamel:replace函数
我想在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> 我也用了“但不起作
"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" : ""