Mulesoft Dataweave 将对象映射到数组

问题描述

在 Mulesoft Dataweave 中,我想将一个对象映射到一个数组。

输入:

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

结果一定是这样的:
[12,13,14]

我用地图尝试过,但它不起作用,因为我似乎与使用 json 对象有关。

我该如何解决这个问题?

解决方法

我们甚至不需要映射:

输入:

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

数据编织:

%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
]