[英]Dataweave - Replace value of a field in an object
I have a Java Object
as input payload:我有一个
Java Object
作为输入有效负载:
{
"name"="Michael",
"surname"="Alpha",
"mail"="demo@gmail.com",
"gender"="Male"
}
I want change the gender value keeping the rest of the message :我想更改保留其余消息的性别值:
%dw 2.0
output application/java
---
gender: if(payload.gender == "Male") "" else payload.gender
But it return only the gender field.但它只返回性别字段。 How can I solve that?
我该如何解决?
The dataweave script needs to match your output structure and you are only outputting a single gender field. dataweave 脚本需要匹配您的输出结构,并且您只输出一个性别字段。
One quick way yo just modify the current payload is using payload ++
.只需修改当前有效负载的一种快速方法是使用
payload ++
。
If your payload is a map/object it will just replace the key if it exists or adds it if not.如果您的有效负载是地图/对象,它只会在存在时替换键,如果不存在则添加它。 Example:
例子:
%dw 2.0
output application/java
---
payload ++ {gender: (if (payload.gender == "male") "" else payload.gender)}
The dataweave script can be simplified since 4.3.0 Runtime version with the followed way:从 4.3.0 Runtime 版本开始可以通过以下方式简化 dataweave 脚本:
%dw 2.0
output application/java
---
payload update {
case .gender -> if(payload.gender == "Male") "" else payload.gender
}
Example: example changing field value Mule 4.3示例: 更改字段值 Mule 4.3 的示例
Link doc: change value Mule 4.3链接文档: 更改值 Mule 4.3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.