RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • 快速入门

  • 规则链

  • 标准组件

    • 标准组件概述
    • 过滤器

    • 动作

    • 转换器

      • 脚本转换器
      • 表达式转换器
        • 配置
        • 配置示例
      • 元数据转换器
      • 模板解析器
    • 外部的

    • 流

  • 扩展组件

  • 自定义组件

  • 组件市场

  • 可视化

  • AOP

  • 触发器

  • 高级主题

  • RuleGo-Server

  • 问题

目录

表达式转换器

exprTransform组件:表达式转换器。使用 expr (opens new window) 表达式引擎对消息进行灵活转换和处理。支持数学运算、字符串处理、条件判断等丰富的表达式功能。

# 配置

字段 类型 说明 默认值
expr string 单个转换表达式,执行结果将替换msg内容 无
mapping map 多字段转换表达式映射表,格式为 {字段名: 转换表达式} 无

配置说明:

  • 当同时配置expr和mapping时,优先使用expr字段的表达式
  • expr用于单一转换场景,结果直接替换msg
  • mapping用于多字段转换场景,多个转换结果会合并成JSON字符串

支持的变量:

  • id - 消息ID
  • ts - 消息时间戳
  • 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
在 GitHub 上编辑此页 (opens new window)
上次更新: 2025/04/02, 01:29:50
脚本转换器
元数据转换器

← 脚本转换器 元数据转换器→

Theme by Vdoing | Copyright © 2023-2025 RuleGo Team | Apache 2.0 License

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式