我正在尝试选择条件,我将根据数组为空运行流程。
示例:
Input : {"data":{"detailsSearch":[]}}
我的代码:
1. #[payload.data.detailsSearch*.size() > 0]
2. #[payload.data.detailsSearch*?]
我收到了运行时异常:
org.mule.api.MessagingException: Execution of the expression "payload.data.detailsSearch*.size() > 0" failed. (org.mule.api.expression.ExpressionRuntimeException).
我正在寻找片段来检查此数组的空和null
答案 0 :(得分:0)
在Mule 4中,您可以在选择路由器中使用Dataweave表达式。如果使用Mule 4,您可以使用Dataweave 2.0语法和sizeOf
函数:
<choice>
<when expression="#[(sizeOf(payload.data.detailsSearch)) > 0]">
...
</when>
</choice>
否则,如果您使用的是Mule 3,则可以使用MEL和java语法。像这样:
...
答案 1 :(得分:0)
@Sandeep,你可以试试
#[dw('sizeOf payload.data.detailsSearch')>0]
答案 2 :(得分:-1)
Sandeep,
此MEL应该有效。在此之前,要提取这样的数据,您应该将json转换为java.util.HashMap对象。
#[payload.data.detailsSearch == empty]