dataweave - 如何在dataweave中获取动态列
问题描述
我吹阵
[ {"FF15974433790786634518": 1 },
{"FF15974433790786634518": 2 },
{"FF15974433790786634519": 1 }]
如何进入["FF15974433790786634518","FF15974433790786634519"]
dataweave?
解决方案
我们可以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)