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

如何将键值对JSON转换为下游系统要求的列表结构JSON?

问题:键值对JSON转指定列表结构的DataWeave转换问题

输入载荷:

{
  "9873452": "74298",
  "9067329": "32115",
  "1234556": "98765"
}

预期输出载荷:

{
    "provider": "Salesforce",
    "payload": [
        {
            "empId": 74298,
            "empName": "9873452"
        },
        {
            "empId": 32115,
            "empName": "9067329"
        },
        {
            "empId": 98765,
            "empName": "1234556"
        }
    ]
}

尝试的DataWeave 2.0代码:

%dw 2.0
output application/json
---
payload mapObject ((value, key, index) -> {
provider: "Salesforce",
payload:
 [empName: key,
empId:value]
})
解决方案

正确的DataWeave代码

%dw 2.0
output application/json
---
{
    provider: "Salesforce",
    payload: payload mapObject ((value, key) -> {
        empId: value as Number,
        empName: key
    })
}

原代码错误分析

  • 结构错误:mapObject会遍历每个键值对生成独立对象,原代码会输出多个包含provider和payload的对象,而非预期的单个顶层对象。
  • 类型不匹配:原代码未将empId的字符串值转换为数字类型,不符合预期输出的类型要求。

代码说明

  1. 直接构建顶层对象,固定provider字段值为"Salesforce"。
  2. 在payload字段内部使用mapObject,遍历输入的键值对,将每个键转为empName,值转为数字类型的empId,最终生成符合要求的对象数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:52:46