簡體   English   中英

Mule 4:map 值,如果密鑰存在

[英]Mule 4: map value if key exists

我在有效負載中有幾個 boolean 字段,無論如何只有一個字段為真。 但有時 payload 將只有兩個 boolean 字段。 我想檢查 payload 是否有這個 boolean 字段,然后將它用於映射,否則忽略它。

輸入載荷:

{
 "IsTypeA" : true,
 "IsTypeB" : false,
 "IsTypeC" : false,
 "text1" : "abc",
 "text2" : "def"
}

輸入負載的可能變化:

{
 "IsTypeB" : true,
 "IsTypeC" : false,
 "text1" : "abc",
 "text2" : "def"
}

僅當它們存在時,我才需要使用 IsTypeA、IsTypeB、IsTypeC 來計算 output 字段的值。

偽代碼:

if IsTypeA exists
  result: if(IsTypeA == true) true else false
else if IsTypeB exists
  result: if(IsTypeB == true) true else false
else if IsTypeC exists
  result: if(IsTypeC == true) true else false
else false

您可以使用密鑰檢查密鑰是否存在? 當前選擇器

%dw 2.0
output application/json
---
"result":(if((payload."IsTypeA"?) and (payload.IsTypeA ==true))
    true
else if((payload."IsTypeB"?) and (payload.IsTypeB ==true))
    true 
else if((payload."IsTypeC"?) and (payload.IsTypeC ==true))
    true 
else false)    

另一種方法是使用default來做到這一點。 default關鍵字在值不存在時設置默認值。

%dw 2.0
output application/json
---
result: (payload.IsTypeA default false) or (payload.IsTypeB default false) or (payload.IsTypeC default false)

暫無
暫無

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

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