如何在AWS IoT core中使用sql语句解码JSON列表?

问题描述 投票:0回答:2

这里我显示了我尝试在 AWS 中解码的有效负载 IoT 核心规则将其推送到 AWS DynamoDB。

{
    "adr": true,
        "applicationID": "1",
        "applicationName": "IOTAPPS",
        "data": "AANl3AAAQT8AZA==",
        "devEUI": "sadfgxvgsfxgs245",
        "deviceName": "TRON002",
        "fCnt": 0,
        "fPort": 2,
        "object": {
          " A1": "NO",
          "A10": "YES",
          "A11": "YES",
          "A12": "YES",
          "EGHmpID": 222684,
          "SelFFMac": 100,
          "TOTAL_DATA": "100000100111111"
        },
        "rxInfo": [
          {
            "gatewayID": "FDFDFEF5584EDEef",
            "location": {
              "altitude": 0,
              "latitude": 12.66885,
              "longitude": 77.81253
            },
            "name": "IoTGateway",
            "fddi": -94,
            "time": "2019-11-18T09:02:08.895349Z"
          }
        ],
        "txInfo": {
          "dr": 5,
          "frequency": 898678700000
        }
    }

我们正在尝试使用以下 SQL 语句从“rxInfo”列表中获取“时间”。

SELECT deviceName,(SELECT VALUE time FROM rxInfo) AS time FROM "my/topic" 

我们没有得到预期的答案

sql arrays amazon-web-services amazon-dynamodb aws-iot
2个回答
0
投票

试试这个,它已在 AWS IoT 上进行了测试。

SELECT (SELECT time fROM rxInfo) AS time FROM "abc/cmd"

生成此输出:

{
  "time": [
    {
      "time": "2019-11-18T09:02:08.895349Z"
    }
  ]
}

干杯,
公羊


0
投票

从“我的/主题”中选择 get(adr.rxInfo,'0').time AS 时间

© www.soinside.com 2019 - 2024. All rights reserved.