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

如何在DataWeave中将Salesforce字段名从驼峰式转为蛇形命名?

解决MuleSoft中Salesforce字段名驼峰转蛇形的问题

直接用DataWeave编写转换逻辑,结合MuleSoft自带的underscore函数处理字段名(key),同时保留Id字段不变,具体实现如下:

核心DataWeave脚本

%dw 2.0
output application/json

// 定义字段名转换函数:保留Id,其余驼峰转蛇形
fun transformFieldName(key: String): String = 
    if (key == "Id") key
    else underscore(key)
---
// 遍历数组中每个对象,转换所有字段名
payload map ((record) -> 
    record mapObject ((value, fieldKey) -> 
        (transformFieldName(fieldKey)): value
    )
)

脚本说明

  • transformFieldName函数:专门处理单个字段名的转换逻辑,判断字段是Id时直接保留,其他字段调用underscore函数把驼峰格式转成蛇形(比如FirstName→first_name,MasterRecordId__c→master_record_id__c)
  • payload map:遍历Salesforce返回的JSON数组,逐个处理每条记录
  • record mapObject:遍历单条记录的所有键值对,替换原字段名为转换后的蛇形名称,值保持原样

扩展:处理嵌套对象(如果有)

如果Salesforce返回的结果包含嵌套对象,把脚本改成递归处理即可:

%dw 2.0
output application/json

fun transformFieldName(key: String): String = 
    if (key == "Id") key
    else underscore(key)

fun transformObject(obj: Any): Any = 
    obj match {
        case is Object -> obj mapObject ((value, key) -> (transformFieldName(key)): transformObject(value))
        case is Array -> obj map ((item) -> transformObject(item))
        else -> obj
    }
---
transformObject(payload)

直接把这段DataWeave放到流水线的Transform组件里,接在Salesforce Bulk Query的输出之后,就能得到符合要求的蛇形命名格式数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:10:31