Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Datensalat: String zu einem Array formatieren

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Datensalat: String zu einem Array formatieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Simon 0 last edited by

      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 : )

      S F 2 Replies Last reply Reply Quote 0
      • S
        Simon 0 @Simon 0 last edited by

        @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 : )

        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @Simon 0 last edited by OliverIO

          @simon-0

          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

          S 1 Reply Last reply Reply Quote 0
          • S
            Simon 0 @OliverIO last edited by

            @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":[]}]

            S OliverIO 2 Replies Last reply Reply Quote 0
            • S
              Simon 0 @Simon 0 last edited by

              @simon-0 flows-7.json

              1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @Simon 0 last edited by

                @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 mit

                obj[0]
                

                oder ein Attribut aus dem ersten Array

                obj[0].payload
                
                1 Reply Last reply Reply Quote 0
                • F
                  fastfoot @Simon 0 last edited by

                  @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);
                  
                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Simon 0 @fastfoot last edited by

                    @fastfoot Ok ich hätte wohl erwähnen sollen das ich alles in der Node-Red Umgebung realisieren wollte. Die Anhänge sind die exportierten Nodes.
                    @OliverIO ist der Javascript Adapter in Node Red?

                    OliverIO 1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @Simon 0 last edited by

                      @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

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        Simon 0 @OliverIO last edited by

                        @oliverio danke ich habe es nochmal in Node Red Bereich gepostet aber dann auch selbst gelöst ; )

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        871
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        264
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo