[英]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.