Извлечение максимальной / самой ранней даты из сообщения JSON в dataweave 2.0

#mule #mule-studio #mule-component #dataweave #mule-esb

#mule #mule-studio #mule-компонент #dataweave #mule-esb

Вопрос:

Моя структура сообщения:

 {
    "empid": "abc",
    "homeCountry": "IND",
    "dateOfBirth": "1969-01-01",
    "personalInformation": [
        {
            "salutation": "Mr",
            "firstName": "Ram",
            "lastName": "Naresh"
        }
    ],
    "EmpInfo": [
        {
            "hireDate": "2000-01-01",
            "LevDate": "2018-07-25",
            "jobInformation": [
                {
                    "isFullTimeEmployee": true,
                    "jobTitle": "Engineer",
                    "effectiveStartDate": "2018-01-05"
                },
                {
                    "isFullTimeEmployee": true,
                    "jobTitle": "Store Manager",
                    "effectiveStartDate": "2019-01-05"
                }
            ]
        }
    ]
}
  

Я хотел бы извлечь максимальную дату и тот же индекс, чтобы я мог объявить его как var и использовать его в сопоставлении.

Ответ №1:

Ваш вопрос недостаточно ясен. Какое поле даты вы хотите использовать? Здесь я создал решение, которое возвращает индекс и значение jobInformation с самым старым effectiveStartDate

 payload.EmpInfo[0].jobInformation 
    map ((item, index) -> {value: item, index: index}) 
    maxBy ((item) -> item.value.effectiveStartDate as Date)