如何检查有效载荷内的空数组?
How to check for empty array inside a payload ?
我正在尝试有一个选择条件,在该条件下我将 运行 流取决于数组是否为空。
示例:
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
在 Mule 4 中,您可以在选择路由器中使用 Dataweave 表达式。如果使用 Mule 4,您可以使用 Dataweave 2.0 语法和 sizeOf
函数:
<choice>
<when expression="#[(sizeOf(payload.data.detailsSearch)) > 0]">
...
</when>
</choice>
否则,如果您使用的是 Mule 3,则可以只使用 MEL 和 java 语法。像这样:
...
@Sandeep,你可以试试
#[dw('sizeOf payload.data.detailsSearch')>0]
桑迪普,
这个 MEL 应该可以工作。在此之前,要像这样提取数据,您应该将 json 转换为 java.util.HashMap 对象。
#[payload.data.detailsSearch == empty]
我正在尝试有一个选择条件,在该条件下我将 运行 流取决于数组是否为空。
示例:
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
在 Mule 4 中,您可以在选择路由器中使用 Dataweave 表达式。如果使用 Mule 4,您可以使用 Dataweave 2.0 语法和 sizeOf
函数:
<choice>
<when expression="#[(sizeOf(payload.data.detailsSearch)) > 0]">
...
</when>
</choice>
否则,如果您使用的是 Mule 3,则可以只使用 MEL 和 java 语法。像这样:
...
@Sandeep,你可以试试
#[dw('sizeOf payload.data.detailsSearch')>0]
桑迪普,
这个 MEL 应该可以工作。在此之前,要像这样提取数据,您应该将 json 转换为 java.util.HashMap 对象。
#[payload.data.detailsSearch == empty]