[英]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.