如何在Mule DataWeave中将flowVar拼接至JSON payload?
DataWeave实现数组合并与字段转换方案
没问题,这个需求用DataWeave几步就能搞定,核心思路就是把原Payload里的Categories数组和FlowVar中的列表做合并,同时给FlowVar里的每个ID配上固定的Code字段。
完整DataWeave代码示例
%dw 2.0 output application/json --- { Categories: payload.Categories ++ (vars.targetFlowVar map { ID: $[0], // 因为FlowVar里的每个元素是单元素数组,所以取第一个值作为ID Code: "CTY" }) }
代码细节解释
- 保留原有数据:
payload.Categories直接获取原有的分类数组,保证原有条目不丢失 - 转换FlowVar元素:用
map函数遍历FlowVar中的每个元素,把每个单元素数组转换成包含ID和固定Code的对象 - 合并数组:用
++运算符把转换后的新条目数组追加到原Categories数组后面,实现最终的合并效果
替换提示
记得把代码里的vars.targetFlowVar替换成你实际使用的FlowVar名称(比如如果你的变量叫newCategoryIds,就改成vars.newCategoryIds)。
用你提供的输入测试的话:
- 原Payload:
{ "Categories": [ { "ID": "5a873ca3", "Code": "CTY" }, { "ID": "89k873c8", "Code": "CTY" } ] }
- FlowVar值:
([84hkj569],[6j93hl9]) - 运行代码后就能得到你期望的输出结果:
{ "Categories": [ { "ID": "5a873ca3", "Code": "CTY" }, { "ID": "89k873c8", "Code": "CTY" }, { "ID": "84hkj569", "Code": "CTY" }, { "ID": "6j93hl9", "Code": "CTY" } ] }
内容的提问来源于stack exchange,提问作者MoeMan
相关产品推荐
相关产品推荐

