Как получить строковые значения из списка карт в dataweave 2.0?
У меня есть входные данные, как это -
[{"a": ""}, {"a": "abc"}, {"a": "pqr"}, {"a": "xyz"}] и желаемым выводом является abc,pqr,xyz
Я пытался следовать dwl, но не смог добиться успеха. Вот фрагмент кода
%dw 2.0
выходное приложение / JSON
запрос: фильтр полезной нагрузки ($.a!= '') map ( $.a)
Может кто-нибудь, пожалуйста, помогите мне с dataweave? Благодарю.
2 ответа
Решение
Если вы хотите получить строку "abc,pqr,xyz":
%dw 2.0
output application/json
---
payload filter ($.a != "") map ($.a) joinBy ","
Если вы пытаетесь получить массив ["abc", "pqr", "xyz"]: ваш код в порядке...
%dw 2.0
output application/json
---
payload filter ($.a != "") map ($.a)
query: joinBy(payload.a filter $ !="", ',')
- Сначала выберите все поля 'a', чтобы получить новый массив только значений.
- Отфильтруйте список для "".
- Используйте функцию joinBy для добавления значений массива через запятую.