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

如何用1-2行DataWeave代码提取键以TXI结尾的元素到数组

提取嵌套JSON(根为数组)中键以TXI结尾的所有对象

核心代码

%dw 2.0
output application/json
---
flatten(payload flatMap ((item) -> (item)** filterObject ((v, k) -> k endsWith "TXI") pluck $))

代码说明

  • payload 指向根数组,用flatMap遍历数组内的每个元素
  • item** 深度遍历当前元素的所有嵌套键值对,不管层级多深
  • filterObject ((v, k) -> k endsWith "TXI") 筛选出键名以"TXI"结尾的键值对
  • pluck $ 把筛选后的键值对的值提取出来(也就是你需要的完整对象)
  • flatten 把多层嵌套的结果数组合并成一个一维数组

示例验证

输入JSON

[
  {
    "user": {
      "profile_TXI": { "id": 1, "name": "Alice" },
      "settings": {
        "preferences_TXI": { "theme": "dark", "notifications": true }
      }
    }
  },
  {
    "order_TXI": { "id": 100, "total": 99.99 },
    "details": { "status": "shipped" }
  }
]

输出JSON

[
  { "id": 1, "name": "Alice" },
  { "theme": "dark", "notifications": true },
  { "id": 100, "total": 99.99 }
]

问题说明

  • mapObject仅能处理当前层级的键值对,无法遍历嵌套结构,因此不适用该场景
  • **深度遍历运算符在DataWeave Playground完全有效,之前失效大概率是写法问题——没有结合数组遍历逻辑适配根为数组的结构。上面的代码通过flatMap先处理每个数组元素,再进行深度筛选,完美解决该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:22:39