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

DataWeave 2 update函数未按预期生效,无法更新payload的price字段

问题原因分析

  • 输出仅为部分payload的原因:你的脚本直接定位到了payload.IntegrationEntities.integrationEntity.integrationEntityDetails.contractUtilization.items.item节点进行操作,输出自然只返回该节点的处理结果,不会保留上层的完整payload结构。要返回全量payload,需要从根节点开始逐层做更新操作,而不是只选中子节点处理。
  • price字段未更新的原因:item是数组类型,你当前的update语句没有遍历数组内的每个item对象,匹配规则无法命中到每个item下的price字段,因此不会触发更新。

正确的DataWeave 2脚本

%dw 2.0
output application/json
---
payload update {
    // 遍历integrationEntity数组
    case entity at .IntegrationEntities.integrationEntity -> entity map (itemEntity) -> itemEntity update {
        // 匹配到items下的item数组
        case itemArr at .integrationEntityDetails.contractUtilization.items.item -> itemArr map (singleItem) -> singleItem update {
            // 更新每个item对象的price字段
            case .price -> "100"
        }
    }
}

脚本说明

  • 从根节点payload开始做update操作,所有上层结构都会完整保留,最终输出全量payload
  • 对数组类型的节点(integrationEntity、item)先做map遍历,逐个处理数组内的对象
  • 最终命中每个item对象下的price字段,完成值的批量更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 20:57:01