You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MuleSoft DataWeave 2.0:按type为AA的对象拆分Payload为多数组

MuleSoft DataWeave 2.0:按{"type": "AA"}拆分数组的实现方案

以下是实现需求的DataWeave 2.0代码:

%dw 2.0
output application/json
---
payload reduce ((item, accumulator = {currentGroup: [], result: []}) -> 
    if (item.type == "AA") 
        {
            currentGroup: [item],
            result: accumulator.result ++ (if (sizeOf(accumulator.currentGroup) > 0) [accumulator.currentGroup] else [])
        }
    else 
        {
            currentGroup: accumulator.currentGroup << item,
            result: accumulator.result
        }
).result ++ (if (sizeOf($.currentGroup) > 0) [$.currentGroup] else [])

代码逻辑说明

  • 借助reduce函数遍历输入数组,通过累加器维护两个状态:
    • currentGroup:临时存储正在构建的子数组
    • result:存储已经完成拆分的所有子数组
  • 遇到type为"AA"的元素时:
    • 将之前已构建完成的currentGroup(非空时)加入result
    • 以当前AA元素为起点,新建一个currentGroup
  • 非AA元素直接追加到当前的currentGroup中
  • 遍历结束后,把最后一个未存入result的currentGroup(非空时)补充到最终结果里

将你提供的输入Payload代入这段代码,即可得到期望的嵌套数组输出。

内容的提问来源于stack exchange,提问作者Mark Okane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 13:46:17