ОБНОВЛЕНО - Включая DataWeave 1 и 2
Я не уверен, как именно хранятся ваши массивы (в полезной нагрузке или других переменных и т. Д.), Но приведенный ниже скрипт должен датьвам достаточно, чтобы продолжить.Сравнение выполняется только на основе leadId
.
Преобразование действительно работает как для DW1, так и для DW2, вам просто нужно изменить заголовок.
Mule 3 и DW1
%dw 1.0
%output application/json
---
payload.array2 filter (not (payload.array1.leadId contains $.leadId))
Мул 4 и DW2
%dw 2.0
output application/json
---
payload.array2 filter (not (payload.array1.leadId contains $.leadId))
Вход
{
"array1": [
{
"leadId": 127,
"playerId": 334353
},
{
"leadId": 128,
"playerId": 334354
},
{
"leadId": 123,
"playerId": 43456
},
{
"leadId": 122,
"playerId": 43458
}
],
"array2": [
{
"leadId": 127,
"name": "James"
},
{
"leadId": 129,
"name": "Joseph"
},
{
"leadId": 120,
"name": "Samuel"
},
{
"leadId": 122,
"name": "Gabriel"
}
]
}
Выход
[
{
"leadId": 129,
"name": "Joseph"
},
{
"leadId": 120,
"name": "Samuel"
}
]