Dataweave преобразование разделить линейный массив JSON.

Я хочу сделать приведенное ниже преобразование, используя мул преобразования Dataweave. Входные данные представляют собой массив пар ключ-значение JSON. Мне нужно разделить то же самое.

вход

{
   "order":[
      {
         "key":"Status",
         "value":"Completed"
      },
      {
         "key":"Source",
         "value":"internet"
      },
      {
         "key":"name",
         "value":"abc def"
      },
      {
         "key":"domain",
         "value":"insurance"
      }
   ]
}

Выход

 {
   "order":[
      {
         "key":"Status",
         "value":"Completed"
      },
      {
         "key":"Source",
         "value":"internet"
      }
   ],
   "Name":[
      {
         "key":"name",
         "value":"abc def"
      },
      {
         "key":"domain",
         "value":"insurance"
      }
   ]
}

Кто-нибудь может помочь?

1 ответ

Решение

Вы можете сделать это путем фильтрации ввода на основе ключей

%dw 1.0
%output application/json
%var data = ["name","domain"]
---
{
    order : payload.order filter not (data contains $.key),
    Name :  payload.order filter  (data contains $.key)
}

Надеюсь это поможет.

Другие вопросы по тегам