Mule 4 - заменить значение JSON в массиве JSON на Dataweave 2 - PullRequest
1 голос
/ 06 апреля 2019

В моем потоке Mule 4 я получаю массив JSON, подобный следующему:

 [
     {
         "type": "error",
         "status": 404,
         "code": "not_found",
         "message": "Could not find the resource",
     },
     {
         "type": "error",
         "status": 401,
         "code": "",
         "message": "Could not find the specified ",
     }
 ]

Я хочу изменить значение поля message на переменную vars.germanMessage для каждого объекта JSON.

Я пытался изменить его с помощью Dataweave 2 таким образом:

%dw 2.0
output application/java
 ---
(payload as Array) map {

    "message": vars.germanMessage

}

Но это возвращает новое сообщение JSON только с полем message.

Тип ввода Array<Object> и тип вывода тоже.

Есть ли способ заменить значение без изменения остальной части сообщения?

1 Ответ

4 голосов
/ 06 апреля 2019

Да, просто используйте mapObject

payload mapObject (value,key) -> {
    (key): if((key as String) == "message")) vars.germanMessage else value
}
...