Объединить элементы в массиве с помощью dataweave - PullRequest
0 голосов
/ 20 февраля 2020

Ввод:

{
  "letterCountArray": [
    {
      "letter": "A",
      "count": 5
    },
    {
      "letter": "B",
      "count": 3
    },
    {
      "letter": "C",
      "count": 6
    },
    {
      "letter": "D",
      "count": 5
    },
    {
      "letter": "E",
      "count": 6
    }
  ]
}

Ожидаемый вывод:

  {
    "count D+E": 11
  }

Я пробовал следующие данные, но безуспешно:

%dw 1.0 
%input payload application/json
%output application/json
---
payload.letterCountArray filter ($.letter == "D" or $.letter == "E") map { "countD+E": $ reduce ($ + $) } 

1 Ответ

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

Это будет суммировать элементы:

%dw 1.0
%input payload application/json
%output application/json
---
"count D+E": sum (payload.letterCountArray filter ($.letter == "D" or $.letter == "E") map (
    $.count
))
...