我有一条消息通过MQTT来自一个主题。
我需要更改邮件列的名称。
原始消息:
{
"timestamp": 1645722065088,
"Heart Rate Measurement": 24550,
"Energy Expended": 1900,
"RR-Interval": 1
}
我只需要将时间戳和心率纳入规则:
SELECT "Heart Rate Measurement"as heartrate, timestamp as date FROM
'pulsewave/heart_rate'
时间戳很容易获得;"心率测量";不是
我最终得到了以下内容:
{
"heartrate": "Heart Rate Measurement",
"date": 1645722065088
}
有什么技巧可以在心率测量中获得信息吗?当我在没有引号的情况下设置时,它不接受
该规则适用于timestamp
属性,但不适用于Heart Rate Measurement
,因为AWS IoT SQL语法不支持属性名称中的空格。
发件人https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html
带有空格的属性名称不能用作SQL语句中的字段名称。虽然传入的有效负载可以具有带有空格的属性名称,但此类名称不能在SQL语句中使用。但是,如果使用通配符(*(字段名称规范,它们将被传递到传出负载。
另一种方法是实现一个lambda,该lambda将您的JSON负载投影到不带空格的等价对象。