我想在Apache骆驼中使用替换功能,但是有麻烦。这是我的代码:
"firstName" : "aaa",
"lastName" : []
我的愿望输出是这样的:
"firstName" : "aaa",
"lastName" : ""
我将以下代码用于转换:
<transform>
<simple>${body.replace("[]","")}</simple>
</transform>
但是问题没有显示双引号,实际上我明白了:
"firstName" : "aaa",
"lastName" :
我也使用了“,但不起作用。预先感谢
答案 0 :(得分:1)
我猜正确的替换调用将包含转义的双引号(我使用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" : ""
您将需要使用身体中不包含的辅助字符。否则,第二步可能会删除您不想删除的内容。