Dataweave - 替换对象中字段的值

gtx*_*911 2 java overwrite mule dataweave

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

{
"name"="Michael",
"surname"="Alpha",
"mail"="demo@gmail.com",
"gender"="Male"
}
Run Code Online (Sandbox Code Playgroud)

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

%dw 2.0
output application/java
---
gender: if(payload.gender == "Male") "" else payload.gender
Run Code Online (Sandbox Code Playgroud)

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

Rya*_*ter 5

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

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

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

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