表达式转换器
exprTransform
组件:表达式转换器。使用 expr (opens new window) 表达式引擎对消息进行灵活转换和处理。支持数学运算、字符串处理、条件判断等丰富的表达式功能。
# 配置
字段 | 类型 | 说明 | 默认值 |
---|---|---|---|
expr | string | 单个转换表达式,执行结果将替换msg内容 | 无 |
mapping | map | 多字段转换表达式映射表,格式为 {字段名: 转换表达式} | 无 |
配置说明:
- 当同时配置expr和mapping时,优先使用expr字段的表达式
- expr用于单一转换场景,结果直接替换msg
- mapping用于多字段转换场景,多个转换结果会合并成JSON字符串
支持的变量:
id
- 消息IDts
- 消息时间戳data
- 原始消息内容msg
- 消息体对象(JSON类型时可用msg.field访问字段)metadata
- 消息元数据对象type
- 消息类型dataType
- 数据类型
表达式示例:
msg.temperature > 30
- 温度大于30度的条件判断upper(msg.name)
- 转换名称为大写len(msg.items)
- 获取数组长度msg.price * 1.2
- 价格加价20%metadata.deviceType == "sensor"
- 判断设备类型msg.value > 100 ? "High" : "Normal"
- 三元运算判断状态format("%s-%d", msg.name, msg.id)
- 格式化字符串in(msg.status, ["active", "pending"])
- 检查状态是否在列表中
# 配置示例
{
"id": "s2",
"type": "exprTransform",
"name": "表达式转换",
"configuration": {
"mapping": {
"name": "upper(msg.name)",
"tmp": "msg.temperature",
"alarm": "msg.temperature>50",
"productType": "metaData.productType"
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
在 GitHub 上编辑此页 (opens new window)
上次更新: 2024/12/22, 03:38:12