关于emqx规则引擎关于收到的数据为纯数组的处理

环境信息

  • EMQX 版本:4.3.11 开源版
  • 操作系统及版本:centos8 stream
  • 客户端为win10,微软edge浏览器

问题描述

1、收到的json数据为:
[{
“name”: “motor5”,
“timestamp”: 1664151898864,
“value”: “37.90625”
},
{
“name”: “motor6”,
“timestamp”: 1664151898864,
“value”: “33.601”
}]
2、我想把收到的数据转为:
{
“motor5”:37.90625,
“motor6”:33.601
}
3、我已试过
select * from “test”
可以得到数据:
完整数据。
但是通过
select payload.* from “test”
提示:
Request failed with status code 500
这种情况下,应该怎么做,有办法吗?

配置文件及日志

4.x 规则语法没有办法处理这种复杂的 JSON 转换。
5.0 里面规则语法里面的 jq 函数可以 (5.0.8):

SELECT
  jq('.[] | {(.name): .value}', payload) as a
FROM
  "t/#"
1 个赞