簡體   English   中英

Dataweave 通過另一個數組值過濾數組

[英]Dataweave filtering array by another array values

我想根據另一個數組值過濾一個數組。 我想根據 ["BP,SH,PY"] 列表中的鍵值“KNVP-PARVW”過濾輸入數組

這是輸入:

[{
    "KNVP-KUNNR": "100098",
    "KNVP-VTWEG": "A1",
    "KNVP-PARVW": "BP",
    "KNVP-PARZA": "000",
    "KNVP-KUNN2": "200115",
    "KNVP-DEFPA": ""
  },
  {
    "KNVP-KUNNR": "100098",
    "KNVP-VTWEG": "A1",
    "KNVP-PARVW": "SH",
    "KNVP-PARZA": "001",
    "KNVP-KUNN2": "200115",
    "KNVP-DEFPA": ""
  },
  {
    "KNVP-KUNNR": "100098",
    "KNVP-VTWEG": "A1",
    "KNVP-PARVW": "ZR",
    "KNVP-PARZA": "000",
    "KNVP-KUNN2": "256",
    "KNVP-DEFPA": ""
  }]

這是我的數據編織代碼:

%dw 2.0
var relationList=["BP,SH,PY"]
output application/json
---
payload filter (  relationList contains  $."KNVP-PARVW" )

雖然["BP,SH,PY"]是一個列表,但它只有一個元素是字符串。 要按照您的意圖使用contains() ,它必須是$."KNVP-PARVW"的有效值列表:

%dw 2.0
var relationList=["BP","SH","PY"]
output application/json
---
payload filter (  relationList contains  $."KNVP-PARVW" )

Output:

[
  {
    "KNVP-KUNNR": "100098",
    "KNVP-VTWEG": "A1",
    "KNVP-PARVW": "BP",
    "KNVP-PARZA": "000",
    "KNVP-KUNN2": "200115",
    "KNVP-DEFPA": ""
  },
  {
    "KNVP-KUNNR": "100098",
    "KNVP-VTWEG": "A1",
    "KNVP-PARVW": "SH",
    "KNVP-PARZA": "001",
    "KNVP-KUNN2": "200115",
    "KNVP-DEFPA": ""
  }
]

明白了 var relationshipList 應該如下所示

var relationList="BP,SH,PY"

暫無
暫無

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

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