如何在DataWeave 2.0中根据运行时参数创建指定嵌套JSON对象
DataWeave 2.0中动态生成指定结构JSON对象的实现方法
基础实现
只需将运行时传入的状态值直接嵌入JSON结构即可,具体取决于状态值的来源(比如payload、变量、属性等):
%dw 2.0 output application/json // 根据实际来源调整状态值的获取方式,比如vars.desiredState或attributes.desiredState var targetState = payload.desiredState --- { application: { desiredState: targetState } }
可选值合法性校验
为了避免非法值传入,可添加校验逻辑,确保状态值仅为STOPPED或STARTED:
%dw 2.0 output application/json var inputState = payload.desiredState var validState = if (inputState among ["STOPPED", "STARTED"]) inputState else // 这里可选择抛出错误或设置默认值,示例为抛出错误 error("Invalid desiredState: allowed values are STOPPED or STARTED") --- { application: { desiredState: validState } }
函数化封装(复用场景)
如果需要多次生成该结构,可以封装成函数,运行时传入状态参数调用:
%dw 2.0 output application/json fun buildAppState(state: String): Object = { application: { desiredState: state } } // 调用示例,替换成运行时实际参数即可 --- buildAppState("STARTED")
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

