Как получить строковые значения из списка карт в 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 $ !="", ',')
  1. Сначала выберите все поля 'a', чтобы получить новый массив только значений.
  2. Отфильтруйте список для "".
  3. Используйте функцию joinBy для добавления значений массива через запятую.
Другие вопросы по тегам