Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mule 组合数组元素并重新格式化输出_Mule_Dataweave_Mule4 - Fatal编程技术网

Mule 组合数组元素并重新格式化输出

Mule 组合数组元素并重新格式化输出,mule,dataweave,mule4,Mule,Dataweave,Mule4,我有一个输入JSON,我想使用Mule的Dataweave2.0转换它 下面是输入JSON [ { "data1": { "role": "analyst", "name": "ABC" }, "data2": { "role": "analyst", "name": "DEF" } }, { "data1

我有一个输入JSON,我想使用Mule的Dataweave2.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"
  }
]

我尝试了不同的选择使用地图,拔毛和展平,但无法得到解决方案。请帮助我使用此转换函数。

如果响应对象的顺序很重要:

%dw 2.0
output application/json
---
flatten (payload map (flatten $))
%dw 2.0
output application/json
---
payload.data1 ++ payload.data2
如果订单不重要:

%dw 2.0
output application/json
---
flatten (payload map (flatten $))
%dw 2.0
output application/json
---
payload.data1 ++ payload.data2

如果响应对象的顺序很重要:

%dw 2.0
output application/json
---
flatten (payload map (flatten $))
%dw 2.0
output application/json
---
payload.data1 ++ payload.data2
如果订单不重要:

%dw 2.0
output application/json
---
flatten (payload map (flatten $))
%dw 2.0
output application/json
---
payload.data1 ++ payload.data2

如果您想维持订单,您可以:

1) 使用
reduce
遍历元素,对于数组中的每个对象,累加
data1
data2

%dw 2.0
output application/json
---
payload reduce (item, acc = []) -> (acc << item.data1 << item.data2)

如果您想维持订单,您可以:

1) 使用
reduce
遍历元素,对于数组中的每个对象,累加
data1
data2

%dw 2.0
output application/json
---
payload reduce (item, acc = []) -> (acc << item.data1 << item.data2)