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

如何在MuleSoft DataWeave 2.0中根据操作参数动态生成JSON数组?

基于操作参数动态生成JSON数组的DataWeave实现

核心需求

根据传入的操作参数(START/STOP/RESTART)生成对应JSON数组:

  • 选择START或STOP时,生成包含单个JSON对象的数组
  • 选择RESTART时,生成包含STOP和START两个JSON对象的数组

简洁实现代码

%dw 2.0
output application/json
var appID = "1234567890" // 替换为实际的appID参数
var op = "RESTART" // 替换为传入的操作参数
---
// 先匹配操作对应的执行序列
(op match {
    case "START" -> ["START"]
    case "STOP" -> ["STOP"]
    case "RESTART" -> ["STOP", "START"]
}) map {
    appID: appID,
    operation: $
}

代码说明

  1. 操作序列匹配:通过match表达式直接映射操作参数到对应的执行步骤列表,逻辑清晰直观,后续新增操作类型也容易扩展。
  2. 生成JSON对象:用map遍历步骤列表,为每个操作生成包含appID和operation字段的JSON对象,最终输出目标数组。

测试结果

  • 当op = "START"时,输出:
[
  {
    "appID": "1234567890",
    "operation": "START"
  }
]
  • 当op = "STOP"时,输出:
[
  {
    "appID": "1234567890",
    "operation": "STOP"
  }
]
  • 当op = "RESTART"时,输出:
[
  {
    "appID": "1234567890",
    "operation": "STOP"
  },
  {
    "appID": "1234567890",
    "operation": "START"
  }
]

对原有尝试的优化说明

你之前的代码依赖未定义的operation变量,逻辑分支过多导致可读性差。上面的实现通过先定义操作序列再映射的方式,简化了逻辑,同时保证了代码的可维护性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 02:06:52