在 MuleSoft/DataWeave 中,我有一個 json 陣列,我需要按另一個 json 串列中的鍵值進行過濾。這是我需要過濾的json:
[
{
"order_by": "CDDASD",
"product_no": "69843270432",
"serial_number": "CD909837296",
"place_of_origin": "SFG",
"depot": "LK955",
"quantity": "150"
},
{
"order_by": "CDDPOI",
"product_no": "74890327033",
"serial_number": "CD909837297",
"place_of_origin": "SVH",
"depot": "MN822",
"quantity": "900"
},
{
"order_by": "CDDUYT",
"product_no": "43720943334",
"serial_number": "CD909837298",
"place_of_origin": "SRF",
"depot": "BV675",
"quantity": "1200"
}
]
當我進行 API 呼叫時,我發送以下 json
{
"FORMAT": [
"order_by",
"product_no",
"serial_number"
]
}
我希望回應只回傳第一個 json 中與 .json 中指定的任何鍵匹配的鍵/值對FORMAT。因此,對于上述內容,我希望得到這樣的回應:
[
{
"order_by": "CDDASD",
"product_no": "69843270432",
"serial_number": "CD909837296"
},
{
"order_by": "CDDPOI",
"product_no": "74890327033",
"serial_number": "CD909837297"
},
{
"order_by": "CDDUYT",
"product_no": "43720943334",
"serial_number": "CD909837298"
}
]
我無法遍歷其中的值,FORMAT然后按這些值過濾第一個 json。我什至不確定我應該使用 DataWeave 中的哪些功能。我應該FORMAT在第一個json上使用map然后過濾嗎?當需要一個物件時,我不斷收到關于使用陣列的錯誤,所以我很茫然。為缺少代碼道歉,我太困惑了,不知道我應該做什么。我感謝所有幫助。
uj5u.com熱心網友回復:
假設您的有效負載始終是您提供的(不是嵌套結構),那么您可以使用Map函式迭代您的有效負載,然后使用 filterObject來實作您想要的輸出
%dw 2.0
output application/json
var fields = {
"FORMAT": [
"order_by",
"product_no",
"serial_number"
]
}
---
payload map ((item) ->
item filterObject ((value, key) ->
fields.FORMAT contains (key as String) ))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/430615.html
