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

Mule DataWeave 2.0根据同对象布尔字段动态赋值其他字段报错如何解决

错误原因

你写的代码存在两处核心问题:

  • sampleRecord2 字段的赋值 true/false 是非法语法,DataWeave没有这种布尔值表示方式,你可以根据实际需求替换为固定布尔值、入参中的布尔字段,或是返回布尔结果的逻辑表达式。
  • DataWeave构造对象时是并行求值的,同一对象内无法直接引用刚刚定义的其他字段,直接写sampleRecord2会被判定为未定义变量,触发报错。

可行解决方案

最简洁的实现方式是提前将sampleRecord2的取值定义为变量,两个字段共同引用该变量即可:

%dw 2.0
output application/json
---
var sampleRecord2Val = true // 此处可替换为你实际的布尔值来源,比如 payload.xxx、vars.xxx 等
{
    "sampleRecord1" : "Test1",
    "sampleRecord2" :  sampleRecord2Val,
    "sampleRecord3" :  if(sampleRecord2Val) 5 else 10
}

优化提示

布尔值在if判断中不需要额外加==true判断,直接使用变量即可,代码更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:24:05