Объединение нескольких массивов JSON без изменения последовательности в Dataweave 1.0

У меня есть несколько массивов JSON, которые мне нужно объединить, прежде чем я отправлю их в общедоступный API в качестве входных данных, и я хотел бы, чтобы полезные данные оставались в той последовательности, в которой я указываю их в dataweave, но как я могу это сделать в Dataweave 1.0? Каждый из моих массивов JSON представляет собой большой набор данных и имеет множество атрибутов для каждой записи, я заметил, что после объединения данные перемешиваются по всем массивам. Как я могу это исправить?

%dw 1.0
%output application/json
---
payload[0] ++ payload[1] ++ payload[2] ++ payload[3] ++ payload[4]

person Chevon Teo    schedule 17.04.2020    source источник


Ответы (2)


Неясно, что именно у вас не работает или какие полезные нагрузки в вашем примере, но работает просто объединение массива.

%dw 1.0
%output application/json
%var array1 = [1,2,3,4]
%var array2 = [5,6,7,8]
---
array1 ++ array2

Выход

[
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8
]
person aled    schedule 17.04.2020
comment
Когда речь идет о большем наборе данных и в каждом элементе массивов много атрибутов, я замечаю, что данные перемешаны :( - person Chevon Teo; 17.04.2020
comment
Насколько велики массивы и сколько атрибутов имеет каждый элемент? - person aled; 18.04.2020
comment
Каждый массив содержит около 2К элементов, и каждый элемент имеет около 20 атрибутов, всего 10К элементов, которые должны быть отправлены в общедоступный API за раз. - person Chevon Teo; 19.04.2020

Единственный способ обеспечить постоянное обеспечение порядка - это иметь пункт, в котором вы упорядочиваете данные. Я не уверен, что вы основывались на предоставленной вами информации, но будет выглядеть примерно так:

%dw 1.0
%output application/json
%var data = [[1,2,3],[4,5,6]]
---
data reduce ((item, acc=[]) -> acc ++ (item orderBy $))
person maddestroyer7    schedule 21.04.2020