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

Mule中DataWeave如何替换数组对象的description字段并保留其他字段?

解决方案:保留原字段仅更新指定字段的DataWeave写法

没问题!你当前的代码之所以只返回description字段,是因为在map操作里直接创建了一个只包含description的新对象,完全丢弃了原item里的其他字段。要实现“保留所有原字段,仅替换指定字段值”的需求,DataWeave提供了两种简洁的写法,不用手动逐个映射其他字段:

方法1:使用对象扩展运算符(++)

通过++将原对象与新的键值对合并,后面的键会覆盖原对象中同名的键:

%dw 2.0
output application/java
---
payload map ((item, index) -> item ++ { description: vars.descriptionValue })

方法2:直接展开原对象并覆盖字段

在新对象中先展开原item的所有字段,再单独指定要替换的字段,同样会覆盖原字段:

%dw 2.0
output application/java
---
payload map ((item, index) -> {
    item,
    description: vars.descriptionValue
})

效果说明

这两种写法都会输出你期望的结果:

[ 
  { 
    "enterprise": "Samsung", 
    "description": "This is the var value"
  }, 
  { 
    "enterprise": "Apple", 
    "description": "This is the var value"
  } 
]

核心逻辑就是不要完全重建对象,而是基于原对象做增量修改,这样就能自动保留所有未指定的字段啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:48:03