You need to enable JavaScript to run this app. DataWeave如何过滤动态键员工数组,筛选Resigned/Terminated状态条目
优惠活动
大模型
产品
解决方案
定价
更多

DataWeave如何过滤动态键员工数组,筛选Resigned/Terminated状态条目

DataWeave 动态键员工数据过滤实现方案

核心思路

无需关心每个外层对象的动态UUID键名,直接通过获取对象值的方式提取员工数组,按状态过滤后拍平为要求的员工对象数组即可。

基础实现代码(适配当前输入结构)

%dw 2.0
output application/json
---
payload flatMap (item) -> 
  // 提取当前动态键对应的员工数组(每个外层对象仅1个键值对,无需关心键名)
  valuesOf(item)[0]
    // 过滤保留指定状态的员工条目
    filter ((emp) -> emp.Employeestatus == "Resigned" or emp.Employeestatus == "Terminated")

兼容多键场景的扩展版本

如果后续可能出现单个外层对象存在多个动态键的情况,可使用该版本自动合并所有键对应的员工数组:

%dw 2.0
output application/json
---
payload flatMap (item) -> 
  // 提取当前对象所有动态键对应的员工数组并拍平
  flatten(valuesOf(item))
    filter ((emp) -> emp.Employeestatus == "Resigned" or emp.Employeestatus == "Terminated")

逻辑说明

  • 用flatMap遍历外层数组的每个动态键对象,自动拍平内层数组,避免最终输出嵌套结构
  • 用valuesOf()方法直接获取对象所有键对应的值集合,完全绕开动态键的命名问题,不需要写固定键路径
  • 直接对提取到的员工对象做状态匹配,状态为Active的条目会被直接过滤
  • 最终输出为扁平化的员工对象数组,完全匹配期望的输出结构

提示:如果需要兼容大小写不敏感的状态匹配,可将严格匹配运算符==替换为DataWeave宽松匹配运算符~=。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 06:15:05