Как отобразить данные в массив в Dataweave?
Я пытаюсь отобразить некоторые существующие данные в массив:
"categories": [
{
"value": [
"System"
],
"displayName": "API type",
"tagType": "category",
"dataType": "enum",
"key": "API type"
},
{
"value": [
"Merchandising"
],
"displayName": "Domain",
"tagType": "category",
"dataType": "enum",
"key": "Domain"
}
]
Я хочу иметь возможность отобразить массив значений в целевое поле моей полезной нагрузки, но отфильтровать только те, которые имеют тип ключа "Домен".
So I am trying to get a payload as follows :-
{
"organizationId": "13445",
"organizationName": "MyOrg",
"assetId": "myAPI",
"businessDomains": [
"Sales",
"Marketing",
"Distribution"
]
}
Я пробовал Dataweave ниже, но я получаю массив массивов:
%dw 1.0
%output application/json
---
{
organizationId: flowVars.v_Org_Id,
organizationName: flowVars.v_Org_Name,
assetId: payload.assetId,
businessDomains: (payload.categories filter ($.categories.key == 'Domain')).value
}
Кто-нибудь может подсказать, какое право Dataweave может быть для этого типа запроса
1 ответ
Вы можете попробовать использовать функцию сглаживания.
businessDomains: flatten((payload.categories filter ($.categories.key == 'Domain')).value)