问题描述
对于Dataweave来说还很陌生,它尝试根据以下条件实现简单的if else条件
if (vars.country == "USA")
{ currency: "USD" }
else { currency: "EUR" }
这很好。但是,当我尝试使用以下其他json变量时,它会失败
%dw 2.0
output application/json encoding="UTF-8"
---
Name: "ABC",if (vars.country == "USA")
{ currency: "USD" }
else { currency: "EUR" }
解决方法
完成它的几种方法:
使用与您拥有的表达式类似的表达式,如果对象中包含多个字段,则必须将其包含在{}
中
%dw 2.0
output application/json encoding="UTF-8"
---
{
Name: "ABC",(if (vars.country == "USA")
currency: "USD"
else
currency: "EUR")
}
使用++
函数来连接对象heres the documentation
%dw 2.0
output application/json encoding="UTF-8"
---
{Name: "ABC"} ++ (
if (vars.country == "USA")
{currency: "USD"}
else
{currency: "EUR"}
)
最后,使用conditional elements功能
%dw 2.0
output application/json encoding="UTF-8"
---
{
Name: "ABC",(currency: "USD") if (vars.country == "USA"),(currency: "EUR") if not (vars.country == "USA")
}
选择一个喜欢的人。
,您需要像这样用括号括住条件
%dw 2.0
output application/json encoding="UTF-8"
var country = "UK"
---
{
Name: "ABC",(if (country == "USA") currency: "USD" else currency: "EUR")
}
输出
{
"Name": "ABC","currency": "EUR"
}