NEWS
Datensalat: String zu einem Array formatieren
-
Nachdem ich einen großen Datensalat aufgrund von verzögerten Datenquellen hatte konnte ich diese in einem String sortieren. Für die weitere Verwendung brauche ich die Daten aber in gleicher Reihenfolge in einem Array. Ich habe gelesen das geht gut über JSONATA geht aber mir fehlt es an Erfahrung um das umzusetzen. Danke schon mal : )
-
Nachdem ich einen großen Datensalat aufgrund von verzögerten Datenquellen hatte konnte ich diese in einem String sortieren. Für die weitere Verwendung brauche ich die Daten aber in gleicher Reihenfolge in einem Array. Ich habe gelesen das geht gut über JSONATA geht aber mir fehlt es an Erfahrung um das umzusetzen. Danke schon mal : )
@simon-0 said in Datensalat: String zu einem Array formatieren:
Nachdem ich einen großen Datensalat aufgrund von verzögerten Datenquellen hatte konnte ich diese in einem String sortieren. Für die weitere Verwendung brauche ich die Daten aber in gleicher Reihenfolge in einem Array. Ich habe gelesen das geht gut über JSONATA geht aber mir fehlt es an Erfahrung um das umzusetzen. Danke schon mal : )
-
@simon-0 said in Datensalat: String zu einem Array formatieren:
Nachdem ich einen großen Datensalat aufgrund von verzögerten Datenquellen hatte konnte ich diese in einem String sortieren. Für die weitere Verwendung brauche ich die Daten aber in gleicher Reihenfolge in einem Array. Ich habe gelesen das geht gut über JSONATA geht aber mir fehlt es an Erfahrung um das umzusetzen. Danke schon mal : )
-
JSONata ist eigentlich dafür da, wenn du bereits ein JSON.Objekt hast.
Wie sieht den dein String aus den du in ein Array umwandeln willst?
Evtl. hilft Regex hier weiter@oliverio ```[{"id":"b0e793e7.295588","type":"inject","z":"589e20c7.549ed","name":"pH","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"8.0","payloadType":"num","x":410,"y":260,"wires":[["3ad7b93c.16b5f6"]]},{"id":"f5c12b11.7da598","type":"inject","z":"589e20c7.549ed","name":"temperature","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"22.1","payloadType":"num","x":390,"y":360,"wires":[["364ce6c5.f4cc8a"]]},{"id":"531c7be4.3879a4","type":"inject","z":"589e20c7.549ed","name":"d_Truebung","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"30","payloadType":"num","x":390,"y":300,"wires":[["9759dcf4.5c2dc"]]},{"id":"9d664f2f.e3c8c8","type":"debug","z":"589e20c7.549ed","name":"FuzzyJSON_Path","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1390,"y":300,"wires":[]},{"id":"da5abe75.7ad858","type":"json","z":"589e20c7.549ed","name":"","property":"payload","action":"","pretty":false,"x":810,"y":300,"wires":[["727dbfac.d17d08"]]},{"id":"1aa84020.14db78","type":"function","z":"589e20c7.549ed","name":"","func":"msg.payload = msg.payload.ph+","+msg.payload.trueb+","+msg.payload.temp+"\n";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1200,"y":300,"wires":[["9d664f2f.e3c8c8"]]},{"id":"3ad7b93c.16b5f6","type":"function","z":"589e20c7.549ed","name":"topic ph","func":"//read payload\n\nvar stringValue = msg.payload;\n\n//set and return payload\nmsg.topic = "ph";\nmsg.payload = stringValue;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":260,"wires":[["da5abe75.7ad858"]]},{"id":"364ce6c5.f4cc8a","type":"function","z":"589e20c7.549ed","name":"topic temp","func":"//read payload\n\nvar stringValue = msg.payload;\n\n//set and return payload\nmsg.topic = "temp";\nmsg.payload = stringValue;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":340,"wires":[["da5abe75.7ad858"]]},{"id":"9759dcf4.5c2dc","type":"function","z":"589e20c7.549ed","name":"topic trueb","func":"//read payload\n\nvar stringValue = msg.payload;\n\n//set and return payload\nmsg.topic = "trueb";\nmsg.payload = stringValue;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":300,"wires":[["da5abe75.7ad858"]]},{"id":"727dbfac.d17d08","type":"join","z":"589e20c7.549ed","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\n","joinerType":"str","accumulate":true,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":970,"y":300,"wires":[["1aa84020.14db78"]]},{"id":"5f5894bc.ac5fa4","type":"comment","z":"589e20c7.549ed","name":"hier soll aus dem String ein Array werden","info":"","x":1510,"y":200,"wires":[]}]
-
@oliverio ```[{"id":"b0e793e7.295588","type":"inject","z":"589e20c7.549ed","name":"pH","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"8.0","payloadType":"num","x":410,"y":260,"wires":[["3ad7b93c.16b5f6"]]},{"id":"f5c12b11.7da598","type":"inject","z":"589e20c7.549ed","name":"temperature","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"22.1","payloadType":"num","x":390,"y":360,"wires":[["364ce6c5.f4cc8a"]]},{"id":"531c7be4.3879a4","type":"inject","z":"589e20c7.549ed","name":"d_Truebung","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"30","payloadType":"num","x":390,"y":300,"wires":[["9759dcf4.5c2dc"]]},{"id":"9d664f2f.e3c8c8","type":"debug","z":"589e20c7.549ed","name":"FuzzyJSON_Path","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1390,"y":300,"wires":[]},{"id":"da5abe75.7ad858","type":"json","z":"589e20c7.549ed","name":"","property":"payload","action":"","pretty":false,"x":810,"y":300,"wires":[["727dbfac.d17d08"]]},{"id":"1aa84020.14db78","type":"function","z":"589e20c7.549ed","name":"","func":"msg.payload = msg.payload.ph+","+msg.payload.trueb+","+msg.payload.temp+"\n";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1200,"y":300,"wires":[["9d664f2f.e3c8c8"]]},{"id":"3ad7b93c.16b5f6","type":"function","z":"589e20c7.549ed","name":"topic ph","func":"//read payload\n\nvar stringValue = msg.payload;\n\n//set and return payload\nmsg.topic = "ph";\nmsg.payload = stringValue;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":260,"wires":[["da5abe75.7ad858"]]},{"id":"364ce6c5.f4cc8a","type":"function","z":"589e20c7.549ed","name":"topic temp","func":"//read payload\n\nvar stringValue = msg.payload;\n\n//set and return payload\nmsg.topic = "temp";\nmsg.payload = stringValue;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":340,"wires":[["da5abe75.7ad858"]]},{"id":"9759dcf4.5c2dc","type":"function","z":"589e20c7.549ed","name":"topic trueb","func":"//read payload\n\nvar stringValue = msg.payload;\n\n//set and return payload\nmsg.topic = "trueb";\nmsg.payload = stringValue;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":300,"wires":[["da5abe75.7ad858"]]},{"id":"727dbfac.d17d08","type":"join","z":"589e20c7.549ed","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\n","joinerType":"str","accumulate":true,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":970,"y":300,"wires":[["1aa84020.14db78"]]},{"id":"5f5894bc.ac5fa4","type":"comment","z":"589e20c7.549ed","name":"hier soll aus dem String ein Array werden","info":"","x":1510,"y":200,"wires":[]}]
-
@oliverio ```[{"id":"b0e793e7.295588","type":"inject","z":"589e20c7.549ed","name":"pH","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"8.0","payloadType":"num","x":410,"y":260,"wires":[["3ad7b93c.16b5f6"]]},{"id":"f5c12b11.7da598","type":"inject","z":"589e20c7.549ed","name":"temperature","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"22.1","payloadType":"num","x":390,"y":360,"wires":[["364ce6c5.f4cc8a"]]},{"id":"531c7be4.3879a4","type":"inject","z":"589e20c7.549ed","name":"d_Truebung","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"30","payloadType":"num","x":390,"y":300,"wires":[["9759dcf4.5c2dc"]]},{"id":"9d664f2f.e3c8c8","type":"debug","z":"589e20c7.549ed","name":"FuzzyJSON_Path","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1390,"y":300,"wires":[]},{"id":"da5abe75.7ad858","type":"json","z":"589e20c7.549ed","name":"","property":"payload","action":"","pretty":false,"x":810,"y":300,"wires":[["727dbfac.d17d08"]]},{"id":"1aa84020.14db78","type":"function","z":"589e20c7.549ed","name":"","func":"msg.payload = msg.payload.ph+","+msg.payload.trueb+","+msg.payload.temp+"\n";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1200,"y":300,"wires":[["9d664f2f.e3c8c8"]]},{"id":"3ad7b93c.16b5f6","type":"function","z":"589e20c7.549ed","name":"topic ph","func":"//read payload\n\nvar stringValue = msg.payload;\n\n//set and return payload\nmsg.topic = "ph";\nmsg.payload = stringValue;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":260,"wires":[["da5abe75.7ad858"]]},{"id":"364ce6c5.f4cc8a","type":"function","z":"589e20c7.549ed","name":"topic temp","func":"//read payload\n\nvar stringValue = msg.payload;\n\n//set and return payload\nmsg.topic = "temp";\nmsg.payload = stringValue;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":340,"wires":[["da5abe75.7ad858"]]},{"id":"9759dcf4.5c2dc","type":"function","z":"589e20c7.549ed","name":"topic trueb","func":"//read payload\n\nvar stringValue = msg.payload;\n\n//set and return payload\nmsg.topic = "trueb";\nmsg.payload = stringValue;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":300,"wires":[["da5abe75.7ad858"]]},{"id":"727dbfac.d17d08","type":"join","z":"589e20c7.549ed","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\n","joinerType":"str","accumulate":true,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":970,"y":300,"wires":[["1aa84020.14db78"]]},{"id":"5f5894bc.ac5fa4","type":"comment","z":"589e20c7.549ed","name":"hier soll aus dem String ein Array werden","info":"","x":1510,"y":200,"wires":[]}]
@simon-0
ok das ist ein JSON string.im javascript-adapter kannst du zunächst JSON in ein Objekt umwandeln.
In data befindet sich der Inhalt den du da gepostet hast.var obj = JSON.parse(data);danach kannst du ganz normal auf die einzelnen Elemente zugreifen.
bspw das erste Array Element mitobj[0]oder ein Attribut aus dem ersten Array
obj[0].payload -
Nachdem ich einen großen Datensalat aufgrund von verzögerten Datenquellen hatte konnte ich diese in einem String sortieren. Für die weitere Verwendung brauche ich die Daten aber in gleicher Reihenfolge in einem Array. Ich habe gelesen das geht gut über JSONATA geht aber mir fehlt es an Erfahrung um das umzusetzen. Danke schon mal : )
@simon-0 so ganz verstehe ich dein Anliegen nicht aber probiere mal:
let payload = JSON.parse(getState('0_userdata.0.Forum.jsonata').val); let jsonataAusdruck = '$[name.$match(/hier/)].name.$split(" ")'; let arr = jsonataExpression(payload, jsonataAusdruck); log(arr); //alle Namen als Array jsonataAusdruck = '$.name'; arr = jsonataExpression(payload, jsonataAusdruck); log(arr); -
@simon-0 so ganz verstehe ich dein Anliegen nicht aber probiere mal:
let payload = JSON.parse(getState('0_userdata.0.Forum.jsonata').val); let jsonataAusdruck = '$[name.$match(/hier/)].name.$split(" ")'; let arr = jsonataExpression(payload, jsonataAusdruck); log(arr); //alle Namen als Array jsonataAusdruck = '$.name'; arr = jsonataExpression(payload, jsonataAusdruck); log(arr); -
-
@simon-0
Nein.
Es ist ebenfalls ein Standard Adapter von
Iobroker, muss aber nachinstalliert werden.Bei node red bin ich allerdings raus
Es gibt dafür ein eigenes unterforum
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden