Mule 4-使用Dataweave 2替换JSON数组中的JSON值

时间:2019-04-06 08:22:06

标签: arrays json mule transform dataweave

在我的 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 ",
     }
 ]

我想将每个JSON对象的message字段的值更改为vars.germanMessage变量。

我已尝试通过 Dataweave 2 对其进行修改:

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

    "message": vars.germanMessage

}

但这会返回仅包含message字段的新JSON消息。

输入类型为Array<Object>,输出类型也为

在不更改消息其余部分的情况下,有什么方法可以替换该值?

1 个答案:

答案 0 :(得分:4)

是的,只需使用mapObject

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