Преобразование JSON данных в муле 4 - PullRequest
2 голосов
/ 09 апреля 2020

У меня есть требование, при котором я должен конвертировать JSON данных из одного формата в другой. Мне нужно получить соответствующие значения массива JSON и сделать их парой значений ключей.

Ниже приведены необходимые данные:

Ввод:

"Headers": {
    "Header": [
      {
        "Key": "SellerOrganization",
        "Value": "XYZ"
      },
      {
        "Key": "SellerType",
        "Value": "B2C"
      },
      {
        "Key": "Region",
        "Value": "SOUTH"
      },
      {
        "Key": "OrderType",
        "Value": "RETURN"
      },
      {
        "Key": "InvoiceType",
        "Value": ""
      },
      {
        "Key": "EventType",
        "Value": "Created"
      },
      {
        "Key": "EntryType",
        "Value": "Call Center"
      }
    ]
  }

Ожидаемый результат :

{
    SellerOrganization:XYZ,
    SellerType: B2C,
    Region:SOUTH,
    OrderType:RETURN,
    InvoiceType:"",
    EventType:Created,
    EntryType:Call Center
}

Ответы [ 2 ]

3 голосов
/ 09 апреля 2020

Вы можете использовать Dynami c объект , который будет в основном делать то, что вы хотите.

%dw 2.0
output application/json
---
{
    (payload.Headers.Header map ((item, index) -> {
        (item.Key): item.Value
    })
    )
}
3 голосов
/ 09 апреля 2020

Здесь вы можете воспользоваться функцией reduce, которая позволит вам преобразовать ваш массив в key, value объект пары

%dw 2.0
output application/json
---
payload.Header reduce ((item, acc = {}) -> acc ++ {
    (item.Key): item.Value
})
...