NEWS
Visualisierung mit Node Red erstellen
-
@mickym Ich habe es mehr als einmal gelesen und momentan sieht mein Flow so aus:
Mein Debug 22 sieht so aus:
Ich weiß, das ich nun die Reihenfolge in der Change Node ändern muss, aber daran verzweifele ich schon wieder seit längerer Zeit.
Die Obstsorte müsste oben stehen und die Anzahl darunter. Ich habe auch noch im Kopf - Ziel oben, Quelle unten, aber das macht mich schon wieder kirre, weil ich es nicht hinbekomme und anscheinen auch nicht die richtige Idee habe. -
@damrak2022 Nun das Problem ist, wie Du Dein Array splittest. Schau Dir wie gesagt an, wie Du das am Anfang gemacht hast.
Ich hatte Dir ja empfohlen - meinen Text mit allen Tipps zu beherzigen.
Das hatte ich geschrieben:
Im Prinzip musst Du also das Umgekehrte machen, was Du zu Beginn des Flows gemacht hast, also Du das Array thematisch richtig getrennt hast und dann den String aus den beiden Pärchen zusammengesetzt hast. Nur dass Du in diesem Fall halt wieder ein Array raushaben willst und nach der Vertauschung die Zahl wieder in den Datentyp Zahl (=number) verwandelt hast.
Noch ein Tipp: Ein Array definierst Du immer wieder in der Inject Node mit eckigen Klammern und mit Kommas trennst Du die Array- oder Listenelemente voneinander.
-
@mickym Okay, ich gehe das nochmal durch.
-
@mickym So hatte ich das auch schonmal:
Aber dann ist das auf jeden Fall der Weg, welcher zum Ziel führt -
@damrak2022 Nein - das ist doch das gleiche Array wie nach der JOIN Node - schau Dir die 1. SPLIT Node an.
-
@mickym Sieht noch ein klein wenig anders aus
-
@damrak2022 Ja doch einiges. Zeig halt mal was debug 22 ausspukt?
-
@mickym Bitte
-
@damrak2022 Ja das schaut doch schon mal gut aus. Dann ist es wohl die Change Node. Ich kann mir auch vorstellen, weil Du Strings wahrscheinlich inder Change Node machst und keine Arrays.
Deswegen hatte ich Dir noch den Tipp gegeben:
Noch ein Tipp: Ein Array definierst Du immer wieder in der Inject Node mit eckigen Klammern und mit Kommas trennst Du die Array- oder Listenelemente voneinander.
-
@mickym Meine Change Node sieht so aus:
Was ist da genau falsch? -
@damrak2022 Na Du machst einen String - so haben wir es zwar oben gemacht, aber da war ja die Aufgabe aus 2 Array Elementen einen String zu bilden. Nun bilden wir aber aus einem Array mit 2 Elementen, wieder ein Array und vertauschen nur die Elemente. Aber was habe ich denn gerade zu einem Array geschrieben in dem Tipp:
Noch ein Tipp: Ein Array definierst Du immer wieder in der Inject Node mit eckigen Klammern und mit Kommas trennst Du die Array- oder Listenelemente voneinander.
Wenn Du das Wort für Wort EINFACH befolgst, dann schreibst Du eine eckige Klammer, dann das Element, das Du als erstes Element in dem Array haben willst, dann ein Komma und dann das zweite Element, das Du in dem Array haben willst. Das Ganze schließt Du mit einer eckigen Klammer ab. Genauer kann ich es mit Worten nicht erklären, ausser dass ich Dir die Lösung hinschreibe.
- Also probiers nochmal in dem Du das genau befolgst und wenn es nicht klappt dann gibts die Lösung.
Wie sieht denn die Arraydefinition in Deiner Inject Node aus?
-
@mickym Ja Moment
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
Die Reihenfolge war also korrekt, aber halt keinen String.Und halt die richtige Reihenfolge. Im ursprünglichen Array steht erst das Obst, dann die Anzahl.
-
@mickym Anscheinend bin ich noch nicht ausgeschlafen. Zeig es mir bitte mal
-
@damrak2022 Nun also ein Array siehst Du ja in der ersten Inject Node durch eckige Klammern definiert:
[]
Aus Deiner Debug Node kommen immer Pärchen mit der Anzahl in payload[0] und die Obstsorte in payload[1]
Nachdem wir ja die Reihenfolge wieder vertauschen müssen, setzen wir also erst die payload[1], also die Obstsorte und dann die Anzahl (payload [0]). Die Arrayelemente werden wie gesagt einfach durch ein Komma getrennt (hatte ich so in dem Tipp geschrieben).
[payload[1],payload[0]]
Da wir aber die Zahl in der Anzahl noch von einem String in eine Zahl konvertieren müssen, benutzt Du am Besten die JSONATA Funktion $number().
Also schaut das Ergebnis so aus:
[payload[1],$number(payload[0])]
-
@mickym sagte in Visualisierung mit Node Red erstellen:
[payload[1],$number(payload[0])]
Danke, aber auf den letzten Eintrag, wäre ich niemals gekommen.
-
@damrak2022 Na dann ist es wichtig, dass Du Dir merkst, dass Du in JSONATA 2 wichtige Konvertierungsfunktionen zur Umwandlung von Datentypen hast:
- Umwandlung in Zeichenketten (strings)
siehe: https://docs.jsonata.org/string-functions
2. Umwandlung in Zahlen (numbers)siehe: https://docs.jsonata.org/numeric-functions
Wenn Du dann wieder Lust hast weiter zu machen, werden wir uns noch etwas mit Arrays und Objekten beschäftigen, damit Du siehst wie sie sich unterscheiden und was für Vor- und Nachteile die eine oder die andere Variante hat.
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym sagte in Visualisierung mit Node Red erstellen:
[payload[1],$number(payload[0])]
Danke, aber auf den letzten Eintrag, wäre ich niemals gekommen.
Und kommt das Array nun wieder so raus, wie Du es am Anfang hattest?
-
@mickym Ja,
-
@damrak2022 Na und mit der letzten JOIN Node, sollte dann ja wieder alles zusammengesetzt werden. ?