如题,emqx中上报的消息类别有json有hex,做规则时如何来判断对应的payload是哪种类型的呢?查了文档没查到。
最好是不同类型的消息用不同的主题,或者在 payload 中加一个特定的标记,这样才能在 SQL 中通过 case-when 语法来判断类型。
https://www.emqx.io/docs/zh/latest/data-integration/rule-sql-syntax.html#case-when-语法示例
如果你确定你的 json 中一定存在 object 或者 array,那么可以通过查找是否存在 ‘{’ 或者 ‘[’ 字符来判断。使用 find 函数来查找字符串中的子串。
https://www.emqx.io/docs/zh/latest/data-integration/rule-sql-builtin-functions.html#字符串函数
已经解决了,通过两个规则分别依据hex中的固定特性和json中的固定特性来识别的。
怎么解决的啊,我是用的4.0版权,也遇到这个问题
MQTT 5.0 的话还可以用 Content-Type 属性,具体可以看下这篇博客:Payload Format Indicator 和 Content Type 介绍与示例 | MQTT 5.0 特性详解 | EMQ