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

Mule4中DataWeave转换需求:交替组合键值对的值

Mule4 DataWeave实现交替字符组合负载转换

需求说明

输入负载:

{
"First": "Mark",
"Last" : "John"
}

需要转换为:

{
"Result" : "MJaorhkn"
}

核心逻辑是将两个字段的值按交替取字符的方式组合成结果字符串。

DataWeave实现代码

%dw 2.0
output application/json
---
{
    Result: do {
        // 将两个字符串拆分为单个字符的数组
        var firstChars = payload.First splitBy ""
        var lastChars = payload.Last splitBy ""
        
        // 交替配对对应位置的字符并拼接
        var pairedSegments = firstChars zipWith lastChars map ($$ ++ $)
        
        // 处理两个字符串长度不一致的情况,追加剩余字符
        var remainingChars = if (firstChars.length > lastChars.length) 
                                firstChars[lastChars.length to -1] 
                            else 
                                lastChars[firstChars.length to -1]
        
        // 合并所有片段得到最终结果
        (pairedSegments joinBy "") ++ (remainingChars joinBy "")
    }
}

代码逻辑解释

  1. 拆分字符:用splitBy ""把First和Last的字符串拆成单个字符组成的数组,比如"Mark"会变成["M","a","r","k"]。
  2. 交替配对:通过zipWith将两个数组的对应位置元素配对,再用map ($$ ++ $)把每对字符拼接成字符串(比如"M"和"J"变成"MJ")。
  3. 处理长度差异:如果其中一个字符串更长,取出超出部分的字符数组,后续追加到结果中。
  4. 合并结果:先把配对后的片段拼接成字符串,再追加剩余字符的拼接结果,得到最终的交替组合字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:23:14