首页 > 解决方案 > Dataweave - 替换对象中字段的值

问题描述

我有一个Java Object作为输入有效载荷:

{
"name"="Michael",
"surname"="Alpha",
"mail"="demo@gmail.com",
"gender"="Male"
}

我想更改保留其余消息的性别值:

%dw 2.0
output application/java
---
gender: if(payload.gender == "Male") "" else payload.gender

但它只返回性别字段。 我该如何解决?

标签: javamuleoverwritedataweave

解决方案


dataweave 脚本需要匹配您的输出结构,并且您只输出一个性别字段。

只需修改当前有效负载的一种快速方法是使用payload ++.

如果您的有效负载是地图/对象,它只会在存在时替换键,如果不存在则添加它。例子:

%dw 2.0
output application/java
---
payload ++ {gender: (if (payload.gender == "male") ""  else payload.gender)}

推荐阅读