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

如何编写DataWeave表达式实现Salesforce响应转JSON数组

解决Salesforce响应转JSON数组的DataWeave问题

问题详情

输入的Salesforce响应数据格式如下:

[ { "Name": "SubscriberKey", "Value": "38hgf5" }, { "Name": "EmailAddress", "Value": "xyz@aol.com" } ], [ { "Name": "SubscriberKey", "Value": "54889" }, { "Name": "EmailAddress", "Value": "abc@aol.com" } ]

期望转换后的JSON数组格式:

[ { "SubscriberKey": "38hgf5", "EmailAddress": "xyz@aol.com" }, { "SubscriberKey": "54889", "EmailAddress": "abc@aol.com" } ]

之前尝试的DataWeave 2.0代码:

payload map (item, index) -> { "SubscriberKey" : item.Value , "EmailAddress" : item.Value }

得到的错误输出:

[ { "SubscriberKey": "38hgf5", "EmailAddress": "38hgf5" }, { "SubscriberKey": "xyz@aol.com", "EmailAddress": "xyz@aol.com" } ]

解决方案

正确的DataWeave 2.0代码如下:

%dw 2.0
output application/json
---
payload map (userFieldGroup) -> 
    userFieldGroup reduce (field, result={}) -> 
        result ++ {(field.Name): field.Value}

代码说明

  1. 外层map遍历:输入的payload是包含多个用户字段数组的集合,先用map逐个处理每个用户的字段数组(即每个[ {Name:..., Value:...}, ... ]子数组)。
  2. 内层reduce合并:对每个用户的字段数组,使用reduce将数组中的每个{Name, Value}对象合并成一个单一对象,把Name的值作为键,Value的值作为对应属性值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:57:11