Dataweave-过滤字段值是否为空

时间:2019-06-03 20:41:38

标签: json filter mule dataweave

我读取了一个包含[ { "example":{ "name":"edward", "lastName":"espin" }, "error":"That name doesn't exists" }, { "example":{ "name":"toretto", "lastName":"brav" }, "error":null } ] 的文件,如下所示:

for-each

我想使用相同的格式仅存储错误值不为空的记录

我使用了payload.error != null,它遍历每个JSON并在内部运行,检查JSON是否不包含带有空值(for-each)的“错误”字段。

问题是我在choice中使用了[ { "example":{ "name":"edward", "lastName":"espin" }, "error":"That name doesn't exists" } ]

期望的输出必须是:

^

使用转换组件 Dataweave 2 是否有更简单的方法?

2 个答案:

答案 0 :(得分:4)

这很简单,只需在消息转换消息处理器中使用过滤器运算符即可。

%dw 2.0
output application/json
---
payload filter ((item, index) -> item.error != null)

答案 1 :(得分:1)

下面是另一种方式

payload[?($.error != null)]