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

如何编写Dataweave脚本实现JSON数组到指定结构对象的转换

DataWeave数组转动态键对象实现脚本

完整实现脚本

可扩展版本(便于后续维护映射关系)

%dw 2.0
output application/json
// 定义字符串和对应用户信息的映射关系
var valueMapping = {
    "abcd": {"firstname": "xyz", "lastname": "pqr"},
    "efgh": {"firstname": "klm", "lastname": "nop"}
}
---
// 遍历数组生成动态键对象后合并为整体对象
payload map ((item) -> {
    (item): valueMapping[item]
}) reduce ((item, accumulator = {}) -> accumulator ++ item)

简化版本(单步完成转换)

%dw 2.0
output application/json
var valueMapping = {"abcd": {"firstname": "xyz", "lastname": "pqr"}, "efgh": {"firstname": "klm", "lastname": "nop"}}
---
payload reduce ((item, acc = {}) -> acc ++ {(item): valueMapping[item]})

核心语法说明

  • 动态键写法:DataWeave中如果需要用变量的值作为对象的键,需要用括号包裹变量,即(item),否则会直接把item作为固定键名
  • reduce函数:用于遍历数组,将每一项生成的临时对象逐步合并为一个完整的输出对象

效果验证

输入示例数组:

[
  "abcd",
  "efgh"
]

运行脚本后输出和要求完全匹配:

{
  "abcd":{
    "firstname": "xyz",
    "lastname" : "pqr"
  },
  "efgh" :{
    "firstname": "klm",
    "lastname" : "nop"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:15:04