【问题标题】:DataWeave 2.0 If else conditionDataWeave 2.0 If else 条件
【发布时间】:2020-09-24 02:20:11
【问题描述】:

我是 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" }

【问题讨论】:

    标签: dataweave


    【解决方案1】:

    完成它的几种方法:

    使用与您所拥有的类似的表达式,当对象中有多个字段时,您必须将对象括在{}

    %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")
    }
    

    选择你喜欢的。

    【讨论】:

      【解决方案2】:

      你需要像这样将条件括在括号中

      %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"
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-01
        • 1970-01-01
        • 2011-11-06
        • 2020-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多