首页 > 解决方案 > 如何在dataweave中获取动态列

问题描述

我吹阵

[ {"FF15974433790786634518": 1 },
{"FF15974433790786634518": 2 },
{"FF15974433790786634519": 1 }]

如何进入["FF15974433790786634518","FF15974433790786634519"]dataweave?

标签: dataweavemule4

解决方案


我们可以map每个项目和pluck钥匙。这给了我们一个数组数组,所以我们使用flatMap( 相当于flatten(payload map(.... 得到我们的平面键数组后,我们可以distinctBy过滤掉重复项。

编辑:正如下面@machaval 评论的那样,您可以通过使用 来使其更加简洁和易于阅读namesOf,它是 pluck 的包装器。

%dw 2.0
output application/json
---
payload flatMap namesOf($) distinctBy($)

扩展时所有这些都在做什么:

%dw 2.0
output application/json
---
flatten(
    payload map (item, index) -> (
        item pluck ((value, key, index) -> key)
    )
) distinctBy ((item, index) -> item)

推荐阅读