我正在尝试使用 max() 从下面的有效负载中获取最新的结束日期,该方法工作正常,但 endDate 可能为空或者元素本身可能不存在于响应中,因此想知道如何处理在获取最大 endDate 值之前进行 null 检查
输入负载
{
"cid": "567",
"payload": {
"id": "34567",
"employee": {
"employType": "PartTime",
"positions": [
{
"role": "Mulesoft Developer",
"startDate": "2023-06-09",
"endDate": "2024-02-22"
},
{
"role": "Senior Mulesoft Developer"
"startDate": "2024-02-23",
"endDate": "2024-09-30"
}
],
"Clevel": "987654"
}
}
}
下面的DW用于获取最大endDate并在流程中进一步使用。
%dw 2.0
output application/json
var latestEndDate = max(payload.payload.employee.positions.endDate)
---
latestEndDate
输入有效负载,结束日期为空
{
"cid": "567",
"payload": {
"id": "34567",
"employee": {
"employType": "PartTime",
"positions": [
{
"role": "Mulesoft Developer",
"startDate": "2023-06-09",
"endDate": ""
},
{
"role": "Senior Mulesoft Developer"
"startDate": "2024-02-23",
"endDate": ""
}
],
"Clevel": "987654"
}
}
}
输入没有结束日期的有效负载
{
"cid": "567",
"payload": {
"id": "34567",
"employee": {
"employType": "PartTime",
"positions": [
{
"role": "Mulesoft Developer",
"startDate": "2023-06-09",
"endDate": ""
},
{
"role": "Senior Mulesoft Developer"
"startDate": "2024-02-23",
"endDate": ""
}
],
"Clevel": "987654"
}
}
}
您可以应用过滤器检查来检查空字符串以及不存在的字段
输入
{
"cid": "567",
"payload": {
"id": "34567",
"employee": {
"employType": "PartTime",
"positions": [
{
"role": "Mulesoft Developer",
"startDate": "2023-06-09",
"endDate": "2024-02-22"
},
{
"role": "Mulesoft Developer",
"startDate": "2023-06-09"
},
{
"role": "Senior Mulesoft Developer",
"startDate": "2024-02-23",
"endDate": ""
}
],
"Clevel": "987654"
}
}
}
DW
%dw 2.0
output application/json
var latestEndDate = max(payload.payload.employee.positions.endDate filter (!isEmpty($)))
---
latestEndDate