ThingsBoard规则链节点:JSON Path节点详解

server/2024/10/16 0:25:24/

引言

JSON Path节点简介

用法

含义

应用场景

实际项目运用示例

智能农业监控系统

工业自动化生产线

车联网平台

结论


引言

ThingsBoard是一个功能强大的物联网平台,它提供了设备管理、数据收集与处理以及实时监控等核心功能。其规则引擎允许用户通过创建复杂的业务逻辑来自动处理来自设备的数据流。本文将详细介绍规则链中的“JSON Path”节点,包括其基本用法、含义及在实际项目中的应用案例。

https://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0&vd_source=5b535ac3589f53abe431d7f6afc44ff4icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0&vd_source=5b535ac3589f53abe431d7f6afc44ff4 

JSON Path节点简介

在现代Web开发和物联网领域中,JSON(JavaScript Object Notation)是一种常用的数据交换格式。当从设备接收到的数据是以JSON格式表示时,可能需要从中提取特定的信息以供进一步处理或分析。这时,“JSON Path”节点就显得非常有用。该节点使用JSONPath表达式来查询和提取JSON对象中的数据。

用法
  1. 添加到规则链:在规则链编辑器界面,从左侧工具箱拖动“JSON Path”节点至右侧工作区。
  2. 配置选项
    • 输入数据:指定要解析的JSON数据源,通常是从上一个节点传递过来的消息体。
    • JSONPath表达式:编写用于定位所需数据的JSONPath表达式。例如,$.temperature可以用来获取名为temperature的字段值。
    • 目标键名:定义输出结果存储的新键名。如果留空,则默认使用整个匹配结果。
  3. 连接到其他节点:通常该节点会放置在需要从复杂JSON结构中提取信息的地方,以便于后续处理步骤能够访问这些数据。
  4. 查看结果:执行后,根据JSONPath表达式匹配的结果会被添加到消息体中,或者更新现有的键值对。
含义

JSON Path节点的主要作用是从复杂的JSON结构中抽取特定的信息。这对于简化数据处理流程、优化性能以及提高代码可读性非常重要。

应用场景
  • 数据过滤:当接收到包含多个属性的遥测数据时,可以通过JSON Path节点筛选出感兴趣的部分进行进一步处理。
  • 动态数据绑定:在构建可视化仪表盘时,可能需要从不同的数据源中提取相关信息并展示给用户。JSON Path节点可以帮助实现这一点。
  • 条件判断:基于提取出的某些关键指标,可以设置触发报警或其他操作的条件。
  • 数据转换:在将数据存储到数据库之前,可能需要对原始JSON数据进行一定的转换或重组。JSON Path节点可以在这一过程中发挥作用。
实际项目运用示例
智能农业监控系统

假设你正在开发一套智能农业监控系统,该系统集成了土壤湿度传感器、温度传感器和光照强度传感器。这些传感器定期向服务器发送包含多种参数的JSON格式数据。

  • 数据提取与处理:每个传感器发送的数据可能如下所示:
     Json 

    深色版本

    {"device_id": "sensor_001","timestamp": "2023-10-01T12:00:00Z","measurements": {"soil_moisture": 35,"temperature": 22.5,"light_intensity": 800}
    }
    使用JSON Path节点,可以从这个JSON对象中提取出具体的测量值。例如,使用表达式$.measurements.soil_moisture来获取土壤湿度值,并将其存储在一个新的键msg.soilMoisture中。这样,在后续的处理步骤中就可以直接使用msg.soilMoisture来进行数据分析或报警触发。
工业自动化生产线

在一个工业自动化生产线上,各种传感器和控制器不断生成大量的操作日志和状态报告。这些数据通常以复杂的JSON格式表示,包含了设备ID、时间戳、状态码、错误描述等多种信息。

  • 错误日志分析:为了快速识别和响应生产线上的故障,可以使用JSON Path节点从日志中提取出错误描述。例如,使用表达式$.error_description来获取错误描述,并将其作为邮件通知的内容发送给维护团队。
  • 性能监控:对于性能监控,可以使用JSON Path节点提取关键指标,如生产速度、停机时间等。然后,利用这些数据生成实时图表,帮助管理人员了解当前的生产状况。
车联网平台

车联网平台涉及车辆位置跟踪、驾驶行为分析等功能。车辆上传的数据通常是JSON格式,包含了大量的车辆状态信息。

  • 位置信息提取:车辆的位置信息是车联网服务的核心部分。使用JSON Path节点,可以从车辆上报的数据中提取出GPS坐标。例如,使用表达式$.gps.latitude$.gps.longitude来分别获取纬度和经度,并将它们存储在消息体中,便于后续的地图显示或路径规划。
  • 驾驶行为分析:为了分析驾驶行为,可以从JSON数据中提取出速度、加速度等关键参数。例如,使用表达式$.speed$.acceleration来获取这些值,并将它们用于计算驾驶评分或生成驾驶报告。
结论

JSON Path节点是ThingsBoard规则链中一个强大而灵活的工具,它使得开发者能够轻松地从复杂的JSON数据中提取所需信息。无论是为了简化数据处理流程、提高系统的响应速度还是增强用户体验,合理使用JSON Path节点都能够显著提升你的IoT项目的效率和灵活性。随着物联网技术的发展,期待未来能看到更多创新的应用实例出现。


http://www.ppmy.cn/server/132446.html

相关文章

Redis的应用以及Redis工具类的封装

在前后端分离的项目中,通过session和cookie的通信一般就失去效益了,即使这么做了也会产生著名的漏洞问题CSRF(Cross-site request forgery), 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。因…

uni-app 如何全局设置,获取app.vue里面的值

在globalData里设置一个值 通过下面方法修改 this.$options.globalData.$versonStatus status 在页面中通过getApp()获取 getApp().globalData.$versonStatus

Android中的View绘制流程

Android中的View绘制流程是一个复杂而精细的过程,它确保了应用程序中的用户界面能够准确、高效地呈现在用户眼前。以下将详细阐述Android View的绘制流程,包括测量(Measure)、布局(Layout)和绘制&#xff0…

如何设置 GitLab 密码长度?

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 60天专业…

【mysql】数据库分区的使用

【mysql】数据库分区的使用 【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理 【二】分区的原理和类型【1】InnoDB逻辑存储结构【2】分区的原理【2】分区类型 【三】分区的优势和使用场景【四】如何实施分区【五】分区表…

python pip安装requirements.txt依赖与国内镜像

python pip安装requirements.txt依赖与国内镜像 如果网络通畅,直接pip安装依赖: pip install -r requirements.txt 如果需要国内的镜像,可以考虑使用阿里的,在后面加上: -i http://mirrors.aliyun.com/pypi/simple --…

三层b+树估算存储多少行数据

文章目录 B树结构图示估算方法(这里要以聚簇索引来看) B树结构图示 估算方法(这里要以聚簇索引来看) 非叶子节点数* 每个叶子结点记录总数 假设mysql 数据页,16kb,刚好对应B树的一个节点 每个叶子结点记录数, 叶子结点存储的是对应的原始数据…

spring:springboot3使用Spring Security,以及和springboot2的区别

文章目录 springboot3使用Spring Security介绍认证与授权简单示例核心APIUserDetailsService接口PasswordEncoder接口 Spring Boot 2 和 Spring Boot 3 中使用 Spring Security 的区别1. Jakarta EE 迁移影响:解决方案: 2. Spring Security 配置方式的变…