技术请求:使用Mule DataWeave 2.0实现JSON数组合并与格式转换
DataWeave 2.0 转换方案:提取嵌套对象并扁平化数组
嗨,我来帮你搞定这个转换需求!你的问题核心是把外层数组中每个对象里的data1、data2这些嵌套对象提取出来,合并成一个一维数组。这里有两种简洁的实现方式:
方法一:使用 map + pluck + flatten
%dw 2.0 output application/json --- flatten(payload map ($ pluck $))
步骤解释:
$ pluck $:对数组中的每个外层对象,pluck会提取该对象所有属性的值(也就是data1和data2对应的对象),每个外层对象会被转换成包含两个元素的数组。payload map (...):遍历整个输入数组,把每个外层对象都转换成上述的二元数组,此时结果是一个二维数组。flatten(...):把二维数组扁平化,将所有子数组合并成一个一维数组,得到你想要的输出。
方法二:使用 flatMap + pluck(更简洁)
%dw 2.0 output application/json --- payload flatMap ($ pluck $)
步骤解释:
flatMap相当于map + flatten的组合操作:它会遍历输入数组的每个元素,对每个元素执行$ pluck $得到一个子数组,然后自动将所有子数组的元素展开合并成最终的一维数组,省去了单独调用flatten的步骤。
两种方法都能生成你期望的输出:
[ { "role": "analyst", "name": "ABC" }, { "role": "analyst", "name": "DEF" }, { "role": "RM", "name": "PQRS" }, { "role": "analyst", "name": "QWE" } ]
内容的提问来源于stack exchange,提问作者Mohit Mehrotra
相关产品推荐
相关产品推荐

