Объект карты Mulesoft Dataweave в массив

В Mulesoft Dataweave я хочу сопоставить объект с массивом.

Ввод:

[
  {
     "id": 12, "name": "sun", "age": 25
  },
  {
     "id": 13, "name": "moon", "age": 25
  },
  {
     "id": 14, "name": "pluto", "age": 28
  },
  ..... etc.
]

Результат должен быть таким:
[12,13,14]

Я пробовал это с картой, но это не работает, потому что кажется, что я привязан к использованию объектов json.

Как я могу это решить?


person Ben    schedule 08.04.2021    source источник
comment
Я предлагаю вам отредактировать свой вопрос, указав действительный JSON - ключи должны быть заключены в кавычки.   -  person Michael Jones    schedule 08.04.2021


Ответы (1)


Нам даже не нужно отображать:

Вход:

[
  {
     "id": 12, "name": "sun", "age": 25
  },
  {
     "id": 13, "name": "moon", "age": 25
  },
  {
     "id": 14, "name": "pluto", "age": 28
  }
]

dataweave:

%dw 2.0
output application/json
---
payload.id

если вы хотите отобразить, хотя вы могли бы просто сделать:

payload map $.id

payload map (item) -> item.id

payload map (item) -> (item.id)

map(payload, (item) -> item.id))

все это даст вам тот же результат

Если бы вы пытались: payload map { ..., вы бы получили объект обратно из-за {.

выход:

[
  12,
  13,
  14
]
person Michael Jones    schedule 08.04.2021
comment
Спасибо, Майкл, это то, что мне нужно! - person Ben; 08.04.2021