Mule 修改有效载荷字段值

Mule 修改有效载荷字段值,mule,mulesoft,Mule,Mulesoft,我收到的有效载荷如下: { "id": "", "provision": { "switch": "xyz", "port": "" } } 我想转换此有效负载,以便将id设置为9,将端口设置为80。因此,在转换之后,有效载荷应该是 { "id": "9"

我收到的有效载荷如下:

{
    "id": "",
    "provision": {
        "switch": "xyz",
        "port": ""
    }
}
我想转换此有效负载,以便将id设置为9,将端口设置为80。因此,在转换之后,有效载荷应该是

{
    "id": "9",
    "provision": {
        "switch": "xyz",
        "port": "80"
    }
}

我该怎么做?我使用的是EE 4.2.2,您可以使用update操作符

输入

{
    "id": "",
    "provision": {
        "switch": "xyz",
        "port": ""
    }
}
%dw 2.0
import * from dw::util::Values
output application/json
---
(payload update field("id") with 9) update ["provision",field("port")] with 80
{
  "id": 9,
  "provision": {
    "switch": "xyz",
    "port": 80
  }
}
脚本

{
    "id": "",
    "provision": {
        "switch": "xyz",
        "port": ""
    }
}
%dw 2.0
import * from dw::util::Values
output application/json
---
(payload update field("id") with 9) update ["provision",field("port")] with 80
{
  "id": 9,
  "provision": {
    "switch": "xyz",
    "port": 80
  }
}
输出

{
    "id": "",
    "provision": {
        "switch": "xyz",
        "port": ""
    }
}
%dw 2.0
import * from dw::util::Values
output application/json
---
(payload update field("id") with 9) update ["provision",field("port")] with 80
{
  "id": 9,
  "provision": {
    "switch": "xyz",
    "port": 80
  }
}

您可以使用update操作符

输入

{
    "id": "",
    "provision": {
        "switch": "xyz",
        "port": ""
    }
}
%dw 2.0
import * from dw::util::Values
output application/json
---
(payload update field("id") with 9) update ["provision",field("port")] with 80
{
  "id": 9,
  "provision": {
    "switch": "xyz",
    "port": 80
  }
}
脚本

{
    "id": "",
    "provision": {
        "switch": "xyz",
        "port": ""
    }
}
%dw 2.0
import * from dw::util::Values
output application/json
---
(payload update field("id") with 9) update ["provision",field("port")] with 80
{
  "id": 9,
  "provision": {
    "switch": "xyz",
    "port": 80
  }
}
输出

{
    "id": "",
    "provision": {
        "switch": "xyz",
        "port": ""
    }
}
%dw 2.0
import * from dw::util::Values
output application/json
---
(payload update field("id") with 9) update ["provision",field("port")] with 80
{
  "id": 9,
  "provision": {
    "switch": "xyz",
    "port": 80
  }
}

另一个粗糙的方法。不推荐

%dw 2.0
output application/json
var id = payload - "provision"
var provision = payload - "id"
var newProv= provision[0] - "port" ++ {"port" : 80}

---
{id:9} ++ provision : newProv

另一个粗糙的方法。不推荐

%dw 2.0
output application/json
var id = payload - "provision"
var provision = payload - "id"
var newProv= provision[0] - "port" ++ {"port" : 80}

---
{id:9} ++ provision : newProv

从哪里得到9和80的值?该信息的来源/逻辑是什么?目前已硬编码。它也可能来自属性集合字段。我只是想弄清楚如何修改现有的有效负载值。尝试不同的语法,但迄今为止都不起作用。从哪里得到9和80的值?该信息的来源/逻辑是什么?目前已硬编码。它也可能来自属性集合字段。我只是想弄清楚如何修改现有的有效负载值。尝试不同的语法,但迄今为止没有一个有效。到目前为止,我没有任何运气尝试它。鉴于我的版本是4.2.2,我甚至不确定我是否可以使用它。你能提供一个转换的例子吗?我看到你在4.2.2银行,它工作了。我到目前为止没有任何运气尝试它。鉴于我的版本是4.2.2,我甚至不确定我是否可以使用它。你能提供一个转换的例子吗?我看到你在4.2.2节,它成功了