如何检查Data weaver:Mule中的空条件
这是我的xml,首先我需要检查'RecordsEntries'不应该是'null',然后RecordEntry不应该是如何检查Data weaver:Mule中的空条件,mule,mule-studio,mule-component,mule-el,Mule,Mule Studio,Mule Component,Mule El,这是我的xml,首先我需要检查'RecordsEntries'不应该是'null',然后RecordEntry不应该是null后跟映射代码 <?xml version="1.0" encoding="UTF-8"?> <Records> <storenumber /> <calculated>false</calculated> <subTotal>12</subTotal> <Records
null
后跟映射代码
<?xml version="1.0" encoding="UTF-8"?>
<Records>
<storenumber />
<calculated>false</calculated>
<subTotal>12</subTotal>
<RecordsEntries>
<RecordEntry>
<deliverycharge>30.0</deliverycharge>
<entryNumber>8</entryNumber>
<Value>true</Value>
</RecordEntry>
<RecordEntry>
<deliverycharge>20.0</deliverycharge>
<entryNumber>7</entryNumber>
<Value>false</Value>
</RecordEntry>
</RecordsEntries>
<RecordsEntries>
<RecordEntry>
<deliverycharge>30.0</deliverycharge>
<entryNumber>8</entryNumber>
<Value>false</Value>
</RecordEntry>
</RecordsEntries>
</Records>
获取错误,如缺少)
。通过直接在第一个循环中检查null条件,尝试了其他方法,得到了类似“无法将数组强制为布尔值”的错误。请建议。谢谢。你可以这样做
%dw 1.0
%output application/xml
---
orders: {
order: {
StoreID: payload.Records.storenumber,
Total: payload.calculated,
((payload.Records.*RecordsEntries.*RecordEntry default []) map {
IndividualEntry: {
Number:$.entryNumber,
DeliverCharge:$.deliverycharge
}
})
}
}
DataWeave对于查询诸如有效负载.Records.*RecordsEntries.*RecordEntry
中的值是“空安全的”,但在尝试使用空值(例如空映射{}
)操作时将抛出错误
default
运算符将其左侧的值(如果null
)替换为右侧的值
您还缺少一个
*
。只要需要匹配的所有重复元素,就需要在xml中使用它。如果要跳过dataweave中基于null或空白的特定字段分配,可以使用下面提到的脚本
有效负载映射((payload01,indexOfPayload01)->{Name:payload01.Name,(LastName:payload01.LastName)当payload01.LastName!=null且payload01.LastName!=''})
如果传入有效负载中的Name字段为null或空白,则这将跳过Name的字段映射。如果输入端的值为null,则在没有其他方式的情况下,在上述语法中,我将跳过lastname的字段分配,则无法使用。在这种情况下,什么时候可以不用其他方法使用。我已经用过很多次了。
%dw 1.0
%output application/xml
---
orders: {
order: {
StoreID: payload.Records.storenumber,
Total: payload.calculated,
((payload.Records.*RecordsEntries.*RecordEntry default []) map {
IndividualEntry: {
Number:$.entryNumber,
DeliverCharge:$.deliverycharge
}
})
}
}