使用 Dataweave 修改现有的有效负载数组
Modify existing payload array using Dataweave
请查看我传入的 mule 负载:(我使用的是 Mule 3.9)
{
"source": {
"code": "CD-12"
},
"target": {
"code": "CD-22"
},
"entities": [
{
"ID": "ABC",
"sourceEnt": {
"entityId": "100A",
"entityName": "ID-1"
},
"targetEnt": {
"Account": {
"Key1": "Value1",
"Key2": "Value2"
},
"Address": [
{
"Name21": "Value21"
}
],
"AccountAddress": [
{
"Key31": "Value31",
"Key32": "Key32"
}
]
}
}
]
}
我是 Mule dataweave 的新手。如何修改某个实体下的特定数组。比如我需要在targetEnt账号下添加"Key3"和"Value3"?
我在下面粘贴我的示例代码。
%dw 1.0
%output application/json
---
{
entities : payload.entities map
{
ID: ID
entity : $.targetEnt
} //++ {"Key3":"Value3"} when $.targetEnt: "Account"
}
我认为你需要做的就是
%dw 1.0
%output application/json
---
{
entities : payload.entities map ((item, index) ->
{
ID: item.ID,
entity : item.targetEnt mapObject ((value, key) -> {
(key): value ++ {"Key3":"Value3"} when key ~= "Account" otherwise value
})
})
}
请查看我传入的 mule 负载:(我使用的是 Mule 3.9)
{
"source": {
"code": "CD-12"
},
"target": {
"code": "CD-22"
},
"entities": [
{
"ID": "ABC",
"sourceEnt": {
"entityId": "100A",
"entityName": "ID-1"
},
"targetEnt": {
"Account": {
"Key1": "Value1",
"Key2": "Value2"
},
"Address": [
{
"Name21": "Value21"
}
],
"AccountAddress": [
{
"Key31": "Value31",
"Key32": "Key32"
}
]
}
}
]
}
我是 Mule dataweave 的新手。如何修改某个实体下的特定数组。比如我需要在targetEnt账号下添加"Key3"和"Value3"? 我在下面粘贴我的示例代码。
%dw 1.0
%output application/json
---
{
entities : payload.entities map
{
ID: ID
entity : $.targetEnt
} //++ {"Key3":"Value3"} when $.targetEnt: "Account"
}
我认为你需要做的就是
%dw 1.0
%output application/json
---
{
entities : payload.entities map ((item, index) ->
{
ID: item.ID,
entity : item.targetEnt mapObject ((value, key) -> {
(key): value ++ {"Key3":"Value3"} when key ~= "Account" otherwise value
})
})
}