在数据编织语言中何处确切使用括号“()”

kus*_*nna 1 dataweave mulesoft

我有这样的代码

 {name: 'Data Weave'} mapObject {(upper $$ ) : $}
Run Code Online (Sandbox Code Playgroud)

动态获取地图对象和大写字母键。下面是输出

   {
"NAME": "Data Weave"
   }
Run Code Online (Sandbox Code Playgroud)

当我删除括在“ upper”关键字中的括号时。数据编织会引发这样的错误。

我在数据编织语言中到底在哪里使用括号感到语法混乱。在上面的代码中,为什么需要使用括号。编译器如何解释括号之间的条件或表达式。

Séb*_*las 5

%dw 2.0
output application/json
---
{name: 'Data Weave'} mapObject {(upper($$) ) : $}
Run Code Online (Sandbox Code Playgroud)

我想您只是忘记了括号,而不是上层功能。仍然需要对DW括号括起来,密钥不是静态的而是动态评估的。总结一下:

  • upper($$) 将您的$$大写=>括号用于将参数传递给函数
  • (upper($$)) 因为键是求值的结果=>括号在这里用于求值表达式并返回结果