簡體   English   中英

Mule Dataweave%1.0中的條件過濾

[英]Conditional filtering in Mule Dataweave %1.0

我正在嘗試過濾來自JSON數組的特定值。 我的示例數組如下:

"source":[
  {
    "value": {
      "Type": [
        {
          "val": "Primary",
          "code": "PRI"
        }
      ],
      "Value": [
        {
          "val": "PHAR",
          "Code": "Pharmacy"
        }
      ]
    }
  },
  {
    "value": {
      "Type": [
        {
          "val": "Secondary",
          "code": "SEC"
        }
      ],
      "Value": [
        {
          "val": "HOSP",
          "Code": "Hospital"
        }
      ]
    }
  }
]

在上面,我需要讀取第一次出現的source.value.Value.val ,其中source.value.Type.code ==“ SEC”我的數組可以有多個代碼,例如“ PRI”,“ SEC”等,我需要僅獲取代碼為“ SEC”的數據(首次出現)

您可以使用過濾器功能過濾陣列。

%dw 1.0
%output application/json
---
{
 output: payload.source filter ($.value.Type[0].code == "SEC")

}

上面的代碼將產生以下輸出:

{
  "output": [
    {
      "value": {
        "Type": [
          {
            "val": "Secondary",
            "code": "SEC"
          }
        ],
        "Value": [
          {
            "val": "HOSP",
            "Code": "Hospital"
          }
        ]
      }
    }
  ]
}

修正 :這是新的代碼段,它將只為您提供所需的值,而不是整個數組

%dw 1.0
%output application/json skipNullOn="everywhere"
---
{
    (payload.source default [] map (source, indexOfSource) -> {
        output: source.value.Value[0].val when source.value.Type[0].code == "SEC" otherwise null
    }) 
}

上面這段代碼的輸出是:

{
  "output": "HOSP"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM