在 Dataweave Mule 中进行 Null 检查的更好方法

Better way of doing a Null check in Dataweave Mule

我一般在Dataweave中做null检查,如下,

{ payload.variableA when payload != null otherwise null }

但我的一位同事建议我使用默认 {} 来减少空值检查,如下所示,

%var x = payload default {}
{
payload.variableA
}

因为它提高了可读性,尤其是在复杂的转换中。

但这样做真的是个好习惯吗?它会导致任何问题,例如创建不必要的空对象吗?

首先,当 payload 为空时,payload.variableA 应该 return 为空。您不需要对此进行检查。尝试访问空对象上的键 returns null 而不是抛出类似于您可能习惯的空指针异常。

您可以将 default 视为 dataweave 的空合并运算符。您可以将其设置为空对象、默认值等。

https://docs.mulesoft.com/mule-runtime/4.3/dataweave-cookbook-defaults

默认运算符在 DW1 和 DW2 中的行为相同。