NEWS
Visualisierung mit Node Red erstellen
-
@damrak2022 So nun kommen wir zu Genialität von JSONATA - Du wirst sehen, wieviel einfacher es ist als mit normalem Javascript.
Es bietet so genannte predicate Queries: https://docs.jsonata.org/predicate
Wir wollen jetzt ein Objekt selektieren, wo wir aber nicht wissen, wo es im Array steht. Wenn Du Dir die Beschreibung ansiehst, kann man die Objekte abfragen, indem man in eckige Klammer die Eigenschaft und welchen Wert die Eigenschaft haben soll angeben.
Ich möchte also, dass Du nun als payload das "gelben Zimmer" ausgibst. Also das ganze Objekt des "gelben Zimmers".
-
@mickym Okay
-
@damrak2022 So bekomme ich immer ein undefined. Also stimmt da was nicht:
-
@damrak2022 Nein es ist ja eine Eigenschaft eines Zimmers - Du solltest also die Struktur weiter beachten:
payload.Zimmer[Zimmername="gelbes Zimmer"]
Die Lösung ist also Du möchtest ein Zimmerobjekt haben, dessen Zimmername, das "gelbe Zimmer" ist.
-
@mickym Okay, danke
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Okay, danke
Damit siehst Du wie einfach das mit JSONATA geht. Um das gleiche mit Javascript zu erreichen, müsstest Du folgenden Code schreiben:
// über Objekte aus Array mit "of" iterieren for (var obj of msg.payload.Zimmer) { if (obj.Zimmername === "gelbes Zimmer") { msg.payload = obj.Preis; return msg; } }
-
@mickym Nee las mal gut sein. Du siehst ja wie schwer ich mich hier schon tue.
-
@damrak2022 Nur noch den Preis des gelben Zimmers ausgeben.
-
@mickym Der ist doch hier:
-
@damrak2022 Das ist das gesamte Objekt des gelben Zimmers und wenn ich nun nur den Preis haben will?
-
@mickym Weiß ich nicht. Ich bin jetzt auch etwas raus.
-
@mickym Achso, hätte ich jetzt einfach .Zimmernummer angehängt, würde er mir nur die Zimmernummer ausgeben, verstanden!
-
@mickym sagte in Visualisierung mit Node Red erstellen:
@damrak2022 Na also. Also wenn Du ein Objekt hast, dann kannst das Gesamt ausgeben oder mit Objekt.Eigenschaft eine einzelne Eigenschaft. Ist das erst mal klar?
Darauf schreibst Du alles klar.
Und wenn ich nun frage wie du auf den Preis des Objektes zugreifst, dann ist es nicht mehr klar.
-
@mickym Ja, ich bekomme das sehr oft nicht so zusammen, wie es eigentlich sein sollte.
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Achso, hätte ich jetzt einfach .Zimmernummer angehängt, würde er mir nur die Zimmernummer ausgeben, verstanden!
Nein nicht zimmernummer - Du hast das Objekt rausbekommen und ich hab gesagt dass Du den Preis ausgeben sollst. Und Du hast wie gesagt vorher geschrieben ist alles klar.
So die Lösung ist doch dann super einfach:
payload.Zimmer[Zimmername="gelbes Zimmer"].Preis
Ich verstehe nicht, wie ich sowas noch einfacher erklären soll. Wenn ich dich vorher frage, wie Du an die Eigenschaft eines Objekt kommen sollst und ich Objekt.Eigenschaft geschrieben habe und Du schreibst - alles klar.
-
@mickym Ja das mit .Preis habe ich ja gemacht. Ich meinte halt nur das würde wohl genauso mit der Zimmernummer funktionieren, richtig?
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Ja das mit .Preis habe ich ja gemacht. Ich meinte halt nur das würde wohl genauso mit der Zimmernummer funktionieren, richtig?
Ja
payload.Zimmer[Zimmername="gelbes Zimmer"].Nummer
-
@mickym Hier ist das was ich gemeint hatte: Die Property heißt in dem Fall "note".
-
@damrak2022 Na super - hast Du ja nun ganz alleine gefunden. Allerdings hat das meines Erachtens nichts mit der Bezahlart zu tun, sondern enthält das Bemerkungsfeld, das Du vielleicht dafür nutzt.
ich wollte beim Spritmonitor meine Tabel Node erweitern, um die Bezahlart noch hinzufügen. Allerdings weiß ich nicht welchen Begriff ich da bei Property eintragen muss?
Für die anderen Leser - das war die Ausgangsfrage - die leider über das Mailsystem gestellt wurde. Deswegen erscheinen diese Posts ohne Zusammenhang.
-
@mickym Ja, Du hast recht, ich trage das immer im Bemerkungsfeld ein.