在 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 中的行为相同。
我一般在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 中的行为相同。