修改负载字段值

Modify payload field values

我有如下传入的有效载荷:

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

我想转换此负载,以便 id 设置为 9port80。所以在转换之后有效载荷应该是

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

我该怎么做?我正在使用 EE 4.2.2

您可以使用更新运算符。

https://docs.mulesoft.com/mule-runtime/4.3/dw-values-functions-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
  }
}

另一种粗略的方法。不推荐..

%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