Как проверить наличие пустого массива внутри полезной нагрузки? - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь создать условие выбора, при котором я буду запускать поток в зависимости от того, является ли массив пустым.

Пример:

Input : {"data":{"detailsSearch":[]}}

Мой код:

1. #[payload.data.detailsSearch*.size() > 0]
2. #[payload.data.detailsSearch*?]

Я получаю исключение времени выполнения:

org.mule.api.MessagingException: Execution of the expression "payload.data.detailsSearch*.size() > 0" failed. (org.mule.api.expression.ExpressionRuntimeException).

Я ищу фрагмент, чтобы проверить наличие пустого и нулевого для этого массива

Ответы [ 3 ]

0 голосов
/ 11 июня 2018

@ Сандип, можешь попробовать

#[dw('sizeOf payload.data.detailsSearch')>0]
0 голосов
/ 19 июня 2018

Сандип,

Этот MEL должен работать.Перед этим для извлечения таких данных вы должны преобразовать json в объект java.util.HashMap.

#[payload.data.detailsSearch == empty]
0 голосов
/ 09 июня 2018

В Mule 4 вы можете использовать выражения Dataweave в выбранном маршрутизаторе.При использовании Mule 4 вы можете использовать синтаксис Dataweave 2.0 и функцию sizeOf:

<choice>
    <when expression="#[(sizeOf(payload.data.detailsSearch)) > 0]">
        ...     
    </when>
</choice>

В противном случае, если вы используете Mule 3, вы можете просто использовать MEL и java синтаксис.Вот так:

...

...