将字符串转换为布尔Mule4 Dataweave

问题描述

我有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
 

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...