Mule 3.8.3 Studio 6.4.4
Я получаю полезную нагрузку XML, которая представляет собой набор номеров клиентов.Мне нужно в конечном итоге вытащить каждый номер и отправить его в очередь сообщений.
Образец входящих данных:
<request func="">
<data>
<transactions time='1539262470'>
<transaction set='customers' notifyid='WMS_NADC_CUSTOMERS' type='update'>
<customers>
<customer id="CIT_1113-11" t="1539257721" y="U" w="WebUser"></customer>
<customer id="C42998-2" t="1539261561" y="N" w="WebUser"></customer>
<customer id="C42998" t="1539262040" y="U" w="WebUser"> </customer>
</customers>
</transaction>
</transactions>
</data>
</request>
После получения этого я использую переплетение для преобразования в json в попыткеболее легкий доступ к идентификаторам.
%dw 1.0
%output application/json
---
{
customers: payload.request.data.transactions.transaction.customers.*customer map (cust, indexOfCustomer) ->{
customer: cust.@id as :string
}
}
Преобразованная полезная нагрузка теперь выглядит как
{
"customers": [
{
"customer": "CIT_1113-11"
},
{
"customer": "C42998-2"
},
{
"customer": "C42998"
}
]
}
На этом этапе я пытаюсь перебрать полезную нагрузку.Установка для каждого payload.get('customers')
переводит меня в jackson.node.ArrayNode.
Мне не удалось понять, как получить доступ к каждому отдельному объекту в списке.Может кто-нибудь из вас, пожалуйста, скажите мне, как это сделать?
Я хочу в конечном итоге поместить полезную нагрузку в очередь сообщений, которая выглядит как
{
"customer": "C42998"
}