NEWS
Unterschiedlichen Wert aufteilen
-
Hey Jungs und Mädels,
Ich habe bei mir ein Wert der bestimmte Gruppen beschreibt.
Wert: [20340] ist zb Gruppe1, ab und an wenn mehrere Gruppen angesprochen werden z.b. Gruppe1, Gruppe4 und sondergruppe
Wert: [20340,9887,1234]Wie kann ich das aufsplitten und wie bekomme ich die eckigen Klammern weg?
Gruß newbroker
-
@newbroker sagte in Unterschiedlichen Wert aufteilen:
[20340,9887,1234]
Wenn Du das als JSON Datenpunkt definierst- hängt es halt nun davon ab, mit was für einem Tool.
Mit Javascript einfach mit parse in ein Array umwandeln.
Ich zeigs mal in NodeRed:
Also erst mal im Datenpunkt definiere ich das als JSON:
Im ersten Schritt wird das Objekt als Array dargestellt und dann kann man einfach über den Index zugreifen.
Also einfach das Array auch als Array einlesen und via Index auf den Wert zugreifen.
Ich bin kein Blockly spezi aber das funktioniert anscheinend so:
-
@mickym
Okay und dann schreibe ich sie in ein neuen Datenpunkt?Ich kenne Node red nicht…
Könnte ich damit die Zahlen in Klartext umstellen?Gruß
-
@newbroker KLar kannst Du Dir Tabellen anlegen um die Nummern in Klartext zu übersetzen und dann kannst Du dies wieder als Array in einen Datenpunkt schreiben. Ob das Sinn macht weiß ich nicht.
Ich hab Dir das mit Blockly auch mal versucht umzusetzen - aber ich kenn mich halt in NodeRed besser aus.
In so einer translate Node ersetze ich halt die NUmmern durch den Text:Jedenfalls würde ich nichts mit Stringmanipulationen machen.
Du siehst im letzten Beispiel - da teilt die Node das Array auf, dann übersetzt Du und fügst es wieder zum Array zusammen. Das ist das letzte Beispiel orange markiert.
Mit dem obigen Flow - kann man das natürlich dann auch wieder übersetzt in einen neuen Datenpunkt schreiben
Wenn Du das mit Strings manipulieren willst, dann nimmst halt die Klammern weg und behandelst das als String. Dann kannst auf die einzelnen Elemente auch über den Listenindex zugreifen:
Hier habe ich Dir es nochmal im Javascript umgesetzt - wie Du über die Umwandlung des Datenpunktes in ein Array auf die Elemente zugreifst.
on({id: "0_userdata.0.testType", change: 'any'},function(obj){ var arr=JSON.parse(obj.state.val); log(arr); log(arr[0]); log(arr[1]); log(arr[2]); });
-