Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Requêtes d'objets imbriqués
Vous pouvez utiliser des clauses SELECT imbriquées pour interroger les attributs dans les tableaux et les objets JSON internes. Pris en charge par SQL 2016-03-23 et versions ultérieures.
Examinez le message MQTT suivant :
{ "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 } ] }
Exemple
Vous pouvez convertir des valeurs en un nouveau tableau avec la règle suivante.
SELECT (SELECT VALUE n FROM e) as sensors FROM 'my/topic'
La règle génère le résultat suivant.
{ "sensors": [ "temperature", "light", "acidity" ] }
Exemple
En utilisant le même message MQTT, vous pouvez également interroger une valeur spécifique dans un objet imbriqué avec la règle suivante.
SELECT (SELECT v FROM e WHERE n = 'temperature') as temperature FROM 'my/topic'
La règle génère le résultat suivant.
{ "temperature": [ { "v": 22.5 } ] }
Exemple
Vous pouvez également aplatir la sortie avec une règle plus compliquée.
SELECT get((SELECT v FROM e WHERE n = 'temperature'), 0).v as temperature FROM 'topic'
La règle génère le résultat suivant.
{ "temperature": 22.5 }