NEWS
Array in einer json Abfrage auslesen
-
Hallo Leute,
ich stehe vor einer kniffligen Aufgabe und brauche mal eure Hilfe.
Per HTTP Get hole ich mir Daten. Diese kommen als json rein und sehen wie folgt aus:"data": { "1535": { "2025-03-26 03:00:00": [ "2025-03-26 04:00:00", 1, 0, [3, 66, 1, "1.085" ], [5, 2, 0, "0.1" ], [1, 20, 0, "1" ], [9, 14, 1, "1.333" ] ] } },
Data bleibt immer gleich, ebenfalls die 1535. Der Zeitstempel ist dynamisch. Ich muss jetzt an die Daten in den eckigen Klammern, also an die Arrays. Dort interessieren mich nur die ersten beiden Zahlen, z.B.
3 und 66
5 und 2
1 und 20
usw.Wie kann ich dieses nun mit Blockly auslesen und die Daten verarbeiten?
Ich habe das bei anderen json abfragen mit dem Baustein "Attribut von Objekt" gelöst. Aber dort waren nie Arrays drin und ich verzweifle gerade...
Wäre toll, wenn einer nen Tipp hat. Danke
-
Hier ein Vorschlag:
und der Import:
Der JSONATA Code lautet wie folgt:
($lookup($$.data."1535",($keys(data."1535")[0]))~>$filter( function($v){$type($v)="array"} )).[$[0],$[1]]
Zum Testen des JSONATA Ausdrucks siehe hier: https://try.jsonata.org/gSFY5sodQ
-
@mickym Du bist mein Held
Funktioniert prima...
Die Sache mit JSONATA habe ich bisher noch nie so genau angeschaut, erspart aber ne Menge Blockly und Code.Vielen Dank dafür
-
@hackypaddy Das JSON sieht so aus, als wären das Daten vom UBA. Hab ich da recht?
-
@rene55 Da hast Du Recht
Nutzt Du die Daten auch?
-
@hackypaddy Ich will dich nicht vom basteln und experimentieren abhalten. Wenn du magst, schau hier: https://forum.iobroker.net/topic/79286/test-adapter-airquality-v0-1-4-github-latest
-
@rene55 Das ist ja das schöne, das basteln und dazulernen
Ich hatte mich bewusst gegen den Adapter entschieden, da dieser die Daten regelmäßig abruft. Ich brauche diese aber nur einmal am Tag, das reicht mir. Zudem verbraucht der Adapter auch wieder Arbeitsspeicher und den wollte ich etwas schonen...
-
@hackypaddy Ja sicher, wie du meinst. War auch nur ein sanfter Hinweis.