巢狀物件查詢 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

巢狀物件查詢

您可以使用巢狀 SELECT 子句來查詢陣列和內部 JSON 物件中的屬性。受 SQL 版本 2016-03-23 和更新版本支援。

請考慮下列 MQTT 訊息:

{ "e": [ { "n": "temperature", "u": "Cel", "t": 1234, "v": 22.5 }, { "n": "light", "u": "lm", "t": 1235, "v": 135 }, { "n": "acidity", "u": "pH", "t": 1235, "v": 7 } ] }
範例

您可以使用以下規則將值轉換為新的陣列。

SELECT (SELECT VALUE n FROM e) as sensors FROM 'my/topic'

該規則會產生以下輸出。

{ "sensors": [ "temperature", "light", "acidity" ] }
範例

使用相同的 MQTT 訊息,您也可以使用下列規則查詢巢狀物件中的特定值。

SELECT (SELECT v FROM e WHERE n = 'temperature') as temperature FROM 'my/topic'

該規則會產生以下輸出。

{ "temperature": [ { "v": 22.5 } ] }
範例

您也可以使用更複雜的規則來平面化輸出。

SELECT get((SELECT v FROM e WHERE n = 'temperature'), 0).v as temperature FROM 'topic'

該規則會產生以下輸出。

{ "temperature": 22.5 }