在数据编织语言中哪里可以准确使用括号“()”
Where to exactly use parenthesis "()" in data weave language
我有这样的代码
{name: 'Data Weave'} mapObject {(upper $$ ) : $}
动态获取地图对象和大写键。下面是输出
{
"NAME": "Data Weave"
}
当我删除包含在 "upper" 关键字中的括号时。数据编织正在抛出这样的错误。
我对在数据编织语言中的什么地方使用括号感到语法困惑。在上面的代码中为什么需要使用括号。编译器如何解释括号内的条件或表达式。
%dw 2.0
output application/json
---
{name: 'Data Weave'} mapObject {(upper($$) ) : $}
我想你只是忘记了上层函数的括号。
围绕上层函数的括号仍然需要向 DW 说明密钥不是静态的,而是动态评估的。
总结:
upper($$)
把你的 $$ 写成大写 => 括号是用来给函数传递参数的
(upper($$))
因为键是求值的结果 => 括号在这里是用来求值的,return 是结果
据我所知,DW 中的括号有三种不同的含义:
1) 优先运算符例如(1 + 1) * 10
2) 现场评估员、您的用例以及@Sebastien Colas 所描述的内容。
3) 对象和对象数组的析构函数,当它们单独出现在 {}
:
%dw 2.0
output application/dw
var d = [
{
a: 1,
b: 2,
c: 3
},
{
d: 4,
e: 5
}
]
---
[
{
(d)
},
{
(d[1]),
f: 6
}
]
我有这样的代码
{name: 'Data Weave'} mapObject {(upper $$ ) : $}
动态获取地图对象和大写键。下面是输出
{
"NAME": "Data Weave"
}
当我删除包含在 "upper" 关键字中的括号时。数据编织正在抛出这样的错误。
我对在数据编织语言中的什么地方使用括号感到语法困惑。在上面的代码中为什么需要使用括号。编译器如何解释括号内的条件或表达式。
%dw 2.0
output application/json
---
{name: 'Data Weave'} mapObject {(upper($$) ) : $}
我想你只是忘记了上层函数的括号。 围绕上层函数的括号仍然需要向 DW 说明密钥不是静态的,而是动态评估的。 总结:
upper($$)
把你的 $$ 写成大写 => 括号是用来给函数传递参数的(upper($$))
因为键是求值的结果 => 括号在这里是用来求值的,return 是结果
据我所知,DW 中的括号有三种不同的含义:
1) 优先运算符例如(1 + 1) * 10
2) 现场评估员、您的用例以及@Sebastien Colas 所描述的内容。
3) 对象和对象数组的析构函数,当它们单独出现在 {}
:
%dw 2.0
output application/dw
var d = [
{
a: 1,
b: 2,
c: 3
},
{
d: 4,
e: 5
}
]
---
[
{
(d)
},
{
(d[1]),
f: 6
}
]