翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ネストされたオブジェクトのクエリ
ネストされた 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 }