簡體   English   中英

騾問題映射有效載荷 dataweave 2.0

[英]Mule issue mapping payload dataweave 2.0

我正在嘗試 map 下面的 json 有效負載僅顯示具有“999”值的日期。 下面是我的有效載荷

[ 
 {
  "Delivery Date": "16",
  "17/01/2018": "0",
  "18/01/2018": "999",
  "19/01/2018": "999",
  "20/01/2018": "0",
  "29/01/2018": "999",
  "18/02/2018": "0",
  "19/02/2018": "999",
  "20/02/2018": "999",
  "03/03/2018": "999"
 }
]

而我想要的 output 是

{ 
  "available_date": [ 
    "18/01/2018", 
    "19/01/2018, 
    "29/01/2018", 
    "19/02/2018", 
    "20/02/2018", 
    "03/03/2018"
  ],
  "message": "" 
}

感謝您的任何建議!

我試過這個。

方法 1 MapObject ,Pluck

%dw 2.0
output application/json
---
{
"available_date":
    (payload mapObject ((value, key, index) -> ((key): (value)) if (value == "999")) pluck $$),
"message":""
}

方法 2 FilterObject , keysOf

%dw 2.0
output application/json
---
{
"available_date": keysOf(payload filterObject ((value, key) -> value == "999")),
"message":""
}

Output

{
  "available_date": [
    "18/01/2018",
    "19/01/2018",
    "29/01/2018",
    "19/02/2018",
    "20/02/2018",
    "03/03/2018"
  ],
  "message": ""
}

使用filterObjectkeysOf替代方法:

%dw 2.0
output application/json
---
{
    'available_date' : keysOf(payload filterObject ((value, key, index) -> value contains "999")),
    message: ""
}

其他解決方案都很好。 為了完整起見,我將使用 filterObject() 然后 pluck() 貢獻一個。

%dw 2.0
output application/json
---
{
    available_date: payload 
                        filterObject ($ == "999")
                        pluck ((value, key, index) -> key),
    message: ""
}

暫無
暫無

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

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