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

如何使用DataWeave 2.0基于公共值合并JSON对象

DataWeave 合并同公共键值对象方案

需求场景

将JSON数组中拥有相同id键值的多个对象合并为单个对象,保留所有唯一键值对。

实现逻辑

  • 第一步:使用groupBy方法按公共字段id对输入数组分组,相同id的对象会被聚合到同一个数组中
  • 第二步:用pluck取出所有分组的对象数组
  • 第三步:对每个分组的对象数组执行reduce操作,将数组合并为单个对象

代码示例

%dw 2.0
output application/json
---
payload 
    groupBy $.id 
    pluck ((sameIdItems) -> sameIdItems reduce ((item, mergedObj = {}) -> mergedObj ++ item))

效果说明

输入你提供的示例JSON后,运行上述代码即可得到你期望的输出结果:

[
  {
    "id": "123",
    "phoneNumber": "123456789",
    "mobileNumber": "987654321",
    "email": "abc@abc.com",
    "user": "user1"
  },
  {
    "id": "234",
    "custID": "123451234"
  }
]

提示:如果相同id的多个对象存在重复键,上述代码默认保留数组中后出现的对象的键值。如果需要优先保留先出现的对象的键值,将mergedObj ++ item修改为item ++ mergedObj即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:18:03