示例
我们接收到一条消息,需要重命名字段、计算新值并移除无用字段,以便后续流程更简洁地处理数据。
输入消息
{
"furnace": {
"temp_c": 30.5,
"humidity": 64,
"pressure": 80
},
"site": "A1"
}
目标转换要求
- 将 furnace.temp_c 移动至 furnace.temperature.celsius
- 新增 furnace.temperature.fahrenheit 字段(由摄氏度转换为华氏度)
- 移除 pressure 字段
- 将 site 字段值从 A1 修改为 B1
输出消息(示例)
{
"furnace":{
"humidity":64,
"temperature":{
"celcius":30.5,
"fahrenheit":86.9
}
},
"site":"B1"
}
需使用的节点
此场景下,我们使用 change 节点对消息属性执行 设置(Set)、替换(Change)、删除(Delete) 和 移动(Move) 操作。
| 参数 | 说明 |
|---|---|
| 规则(Rules) | 每条规则按从上到下的顺序执行。 |
| 规则类型(Rule Type) | • 设置(Set):设置或新建属性值。 |
| 属性/源/目标(Property/Source/Target) | 定义要操作的属性路径,例如 |
| 目标值(Target Value) | • 设置(Set):要赋值的目标值。 |
如何使用修改节点?
- 在 事件流程 中拖拽一个
inject节点,添加以下JSON作为输入内容。
{
"furnace": {
"temp_c": 30.5,
"humidity": 64,
"pressure": 80
},
"site": "A1"
}
- 将其与
change节点连接。 - 打开
change节点配置面板,添加以下规则:
- Move: msg.payload.furnace.temp_c → msg.payload.furnace.temperature.celcius
- Set: msg.payload.furnace.temperature.fahrenheit → payload.furnace.temperature.celcius * 9/5 + 32
- Delete: msg.payload.pressure
- Change: 将 msg.payload.site 的值从 A1 改为 B1
- 将
change节点与debug节点连接,查看转换后的输出结果.
