问题描述
我有mule4 DW表达式,我想将其转换为布尔值,因为“布尔值”无法正常工作,或者可能是我放错了位置。
DW表达式:
%dw 2.0
output application/java
ns ns0 http://www.demandware.com/xml/impex/order/2006-10-31
---
[{
Id: (payload.ns0#order.ns0#"custom-attributes".*ns0#"custom-attribute" filter(item) -> (item.@"attribute-id" == "sscAccountid")) [0],Marketing_Opt_in__c: (payload.ns0#order.ns0#"custom-attributes".*ns0#"custom-attribute" filter(item) -> (item.@"attribute-id" == "newsLetterRegistration")) [0] //***This output I want to convert into Boolean***
}]
XML标签
<custom-attribute attribute-id="newsLetterRegistration">false</custom-attribute>
解决方法
[{
Id: (payload.order."custom-attributes".*"custom-attribute" filter(item) -> (item.@"attribute-id" == "sscAccountid"))[0],Marketing_Opt_in__c: (payload.order."custom-attributes".*"custom-attribute" filter(item) -> (item.@"attribute-id" == "newsLetterRegistration"))[0]
~= 'True' //***This output I want to convert into Boolean***
}]
要使其不区分大小写,请将比较的两端都转换为一个大小写,例如大写
upper((item.@"attribute-id" == "newsLetterRegistration"))[0])
~= 'TRUE'
另一种方法是使用Java布尔类,该类会自动执行此强制转换。
(item.@"attribute-id" == "newsLetterRegistration"))[0] as Boolean