我是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" }发布于 2020-09-24 02:20:12
以下是几种完成任务的方法:
使用与已有内容类似的表达式,当对象中包含多个字段时,必须将这些对象包含在{}中
%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")
}选一个你喜欢的。
发布于 2020-09-24 02:09:28
您需要将条件括在括号中,如下所示
%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"
}https://stackoverflow.com/questions/64033801
复制相似问题