mule - 组合数组的元素并重新格式化输出
问题描述
我有一个输入 JSON,我想使用 Mule 的 dataweave 2.0 对其进行转换。
下面是输入 JSON。
[
{
"data1": {
"role": "analyst",
"name": "ABC"
},
"data2": {
"role": "analyst",
"name": "DEF"
}
},
{
"data1": {
"role": "RM",
"name": "PQRS"
},
"data2": {
"role": "analyst",
"name": "QWE"
}
}
]
我们希望输出如下:
[
{
"role": "analyst",
"name": "ABC"
},
{
"role": "analyst",
"name": "DEF"
},
{
"role": "RM",
"name": "PQRS"
},
{
"role": "analyst",
"name": "QWE"
}
]
我尝试了使用 map、pluck 和 flatten 的不同选项,但无法得到解决方案。请帮助我使用转换功能。
解决方案
如果您想保留订单,您可以:
1)遍历reduce
数组中每个对象的元素,累积data1
并data2
%dw 2.0
output application/json
---
payload reduce (item, acc = []) -> (acc << item.data1 << item.data2)
2) 使用map
, 为数组中的每个元素创建一个中间数组,其中包含data1
anddata2
然后flatten
那个。
%dw 2.0
output application/json
---
flatten (payload map (item) -> [item.data1, item.data2])
推荐阅读
- java - 用户输入二维数组,Java
- reactjs - 身份服务器 4 + oidc-client-js 注销重定向
- action - 拦截发送到 NgRx 存储的所有操作
- python - 如何解决 AttributeError:模块 'keras.optimizers' 没有属性 'Adam'
- arrays - 以某个索引打字稿/角度9将对象推入或拼接到对象数组上?
- linux - wifi 断开连接后 SSH 连接重新连接到 Azure VM 时出现问题
- html - Outlook 电子邮件未显示所需的 html 表格格式(边框折叠不起作用)
- python - Python如何列出一个数组并使它们成为枚举
- reactjs - 从 Firebase Auth REST API 获得 400 响应
- typescript - 如何创建自定义输入苗条组件并重用道具类型?