Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verschachtelte Objektabfragen
Sie können verschachtelte SELECT-Klauseln verwenden, um Attribute in Arrays und inneren JSON-Objekten abzufragen. Unterstützt von der SQL Version vom 23.03.2016 und höher.
Betrachten Sie die folgende MQTT-Meldung:
{ "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 } ] }
Beispiel
Sie können Werte in ein neues Array mit der folgenden Regel konvertieren.
SELECT (SELECT VALUE n FROM e) as sensors FROM 'my/topic'
Die Regel generiert folgenden Output:
{ "sensors": [ "temperature", "light", "acidity" ] }
Beispiel
Mit derselben MQTT-Meldung können Sie auch einen bestimmten Wert innerhalb eines verschachtelten Objekts mit der folgenden Regel abfragen.
SELECT (SELECT v FROM e WHERE n = 'temperature') as temperature FROM 'my/topic'
Die Regel generiert folgenden Output:
{ "temperature": [ { "v": 22.5 } ] }
Beispiel
Sie können die Ausgabe auch mit einer komplizierteren Regel glätten.
SELECT get((SELECT v FROM e WHERE n = 'temperature'), 0).v as temperature FROM 'topic'
Die Regel generiert folgenden Output:
{ "temperature": 22.5 }