преобразование с заказом в mule 4 с dataweave 2.0 - PullRequest
0 голосов
/ 25 февраля 2020

Я должен сделать свой массив полезных данных в порядке возрастания на distanceInKm. Это полезная нагрузка:

 [{
   "id": 1111,
   "accountNumber": 17694838,   
   "pickup": {
    "time": 1580637133000,
    "distanceInKm": 4.3
   }
 },{
  "id": 2222,
  "accountNumber": 17694838,
  "pickup": {
    "time": 1580637133000,
    "distanceInKm": 2.0
  }
},{
  "id": 3333,
  "accountNumber": 17694838,    
  "pickup": {
    "time": 1580637133000,
    "distanceInKm": 4.3
  }
  },{
  "id": 4444,
  "accountNumber": 17694838,
  "pickup": {
    "time": 1580637133000,
    "distanceInKm": 2.0
   }}]

Преобразование:

  %dw 2.0
  output application/json 
   ---
 payload map (payload01, index) -> {
id: payload01.id,
Account: payload01.accountNumber,
pickup: {
    time: payload01.pickup.time,
    distance: payload01.pickup.distanceInKm
  }
} orderBy (payload01.pickup.distanceInKm)

Я выполняю преобразование, которое требуется, и после этого я применяю orderBy, но это не работает. Какие изменения я могу сделать, чтобы сделать это в порядке возрастания distanceInKm?

1 Ответ

1 голос
/ 25 февраля 2020

Вы можете просто заключить свою «карту» в группу, чтобы убедиться, что вы упорядочиваете уже полученный массив. См. Ниже.

(payload map (payload01, index) -> {
    id: payload01.id,
    Account: payload01.accountNumber,
    pickup: {
        time: payload01.pickup.time,
        distance: payload01.pickup.distanceInKm
    }
}) orderBy $.pickup.distance

Это приведет к массиву, упорядоченному по distanceInKm в порядке возрастания. Если вам нужен нисходящий порядок, вы можете использовать -$.pickup.distance в качестве критерия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...