Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JSONATA Filter auf json array

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    JSONATA Filter auf json array

    This topic has been deleted. Only users with topic management privileges can see it.
    • ___manalishi
      ___manalishi @___manalishi last edited by

      @___manalishi cb054578-601f-4074-a34a-9dfad85aea81-image.png
      gelöst. Danke für deine Unterstützung!

      ___manalishi 1 Reply Last reply Reply Quote 0
      • ___manalishi
        ___manalishi @___manalishi last edited by ___manalishi

        7a83ce5c-eb2b-4f21-9693-5e237d0ac8aa-image.png
        81d1ff9b-5da1-4cbc-a892-4ca69086d07c-image.png

        Ich bekomme beim parsen des JSON files in IOBroker leider "undefined", obwohl im Exerciser ein Ergebnis angezeigt wird. Was mache ich hier falsch?

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @___manalishi last edited by mickym

          @___manalishi Machmal vor das data ein $. Zeichen - damit er den aktuellen Kontext nimmt

          $.data.rows[0].fundingRate
          

          und prüfe ggf. mit dem debug puzzle Teil, dass result auch ein Ergebnis zurückliefert.

          ___manalishi 2 Replies Last reply Reply Quote 0
          • ___manalishi
            ___manalishi @mickym last edited by

            @mickym 11d4b1c2-45ee-4d8c-b436-4c379be442ce-image.png

            mickym 1 Reply Last reply Reply Quote 0
            • ___manalishi
              ___manalishi @mickym last edited by

              @mickym 64afd639-90fa-4ab1-9c80-5ad6dcb66474-image.png

              1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @___manalishi last edited by mickym

                @___manalishi Ja Du hast auch Objekt nach JSON konvertiert und nicht JSON nach Objekt

                Du brauchst dieses Teil
                5e54d196-5f1c-4f9c-97d0-9086ba17a3d4-image.png

                und nicht umgekehrt. Du arbeitest mit Objekten und nicht mit JSON strings.

                558418af-886c-454f-a746-19a3c26f43bd-image.png

                ___manalishi 1 Reply Last reply Reply Quote 0
                • ___manalishi
                  ___manalishi @mickym last edited by

                  @mickym da habe ich aus Verzweiflung mal ausprobiert. Hier mit JSON nach Objekt:
                  1b17e6c7-8199-4c51-bdd5-8b585a20cd24-image.png

                  mickym 2 Replies Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @___manalishi last edited by mickym

                    @___manalishi Teile mit mir Deinen JSONATA Exerciser, dann probiere ich selbst. Ich vermute dass in dem result noch was unterschiedlich zum Exerciser ist.

                    5fdb3664-9380-44ac-8711-0eb08625d676-image.png

                    ___manalishi 2 Replies Last reply Reply Quote 0
                    • ___manalishi
                      ___manalishi @mickym last edited by ___manalishi

                      @mickym https://try.jsonata.org/2Txs7duVq

                      hier mein Result:

                      Result: {'code': 0, 'msg': 'OK', 'data': {'rows': [{'symbol': '.BERAUSDTFR8H', 'fundingRate': '0.00003647', 'fundingTime': 1743264000000, 'intervalSeconds': 14400}]}}

                      1 Reply Last reply Reply Quote 0
                      • ___manalishi
                        ___manalishi @mickym last edited by ___manalishi

                        @mickym sollte der debug Baustein mit JSON nach Objekt ein Ergenis ausgeben?

                        a28aaa48-4a1e-4c31-8d31-3316497ad911-image.png

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @___manalishi last edited by mickym

                          @___manalishi Nein aber der code darf auch nicht in ' stehen. Ggf. musst Du nichts konvertieren.

                          e76eefef-20ff-42a0-b583-659d8cf87806-image.png

                          Wenn ich Dein Objekt aus dem JSONATA Exerciser ins Blockly übernehme dann funktioniert alles.

                          Hier zum Import:

                          <xml xmlns="https://developers.google.com/blockly/xml">
                           <variables>
                             <variable id="8+=Mk?BD}YCcGl~4E)j|">Objekt</variable>
                           </variables>
                           <block type="variables_set" id="8TUEPFER^60tpZeXyo6g" x="-137" y="63">
                             <field name="VAR" id="8+=Mk?BD}YCcGl~4E)j|">Objekt</field>
                             <value name="VALUE">
                               <block type="convert_json2object" id="I#fP01}u(y@zi]+ky=U#">
                                 <value name="VALUE">
                                   <block type="text" id="FPjE:co!sqd}=j?;!5o/">
                                     <field name="TEXT">{   "code": 0,   "data": {     "rows": [       {         "fundingRate": "0.00003647",         "fundingTime": 1743264000000,         "intervalSeconds": 14400,         "symbol": ".BERAUSDTFR8H"       }     ]   },   "msg": "OK" }</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="debug" id="R:3IdXPc-Ye6*0flWePD">
                                 <field name="Severity">info</field>
                                 <value name="TEXT">
                                   <shadow type="text" id="BKx/`I0xv2,QV6c:jxKa">
                                     <field name="TEXT">test</field>
                                   </shadow>
                                   <block type="variables_get" id="PpY08lt65(HhfilRUlil">
                                     <field name="VAR" id="8+=Mk?BD}YCcGl~4E)j|">Objekt</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="debug" id="k08ZC410l/7`T|+g_+w@">
                                     <field name="Severity">info</field>
                                     <value name="TEXT">
                                       <shadow type="text" id=",T!NCf4e|u/ADp:g1bn[">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="convert_jsonata" id="u}[_Z`KWHAeHkdE@@V?=">
                                         <value name="EXPRESSION">
                                           <shadow type="text" id="eg-6.rV=oGTM`RArquVg">
                                             <field name="TEXT">$.data.rows[0].fundingRate</field>
                                           </shadow>
                                         </value>
                                         <value name="TARGET">
                                           <block type="variables_get" id="n+aI}jp_T]nxZ439rGaK">
                                             <field name="VAR" id="8+=Mk?BD}YCcGl~4E)j|">Objekt</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                           <block type="convert_json2object" id="1-ME3y(y.YrZvl:v}Pb`" x="388" y="438"></block>
                          </xml>
                          

                          Es muss also an Deinem result liegen, dass das KEIN Objekt ist, sondern entweder JSON String oder irgendwie kein Objekt da rauskommt.

                          Ansonsten siehst Du, dass Dein Code auch im Blockly tut.

                          Vielleicht ist result schon ein Objekt oder Du musst wie gesagt falls das ein JSON String ist, diesen in ein Objekt wandeln. Irgendwas stimmt da nicht. Prinzipiell ist aber Dein Code richtig, wie Du siehst.

                          ___manalishi 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @___manalishi last edited by

                            @___manalishi sagte in JSONATA Filter auf json array:

                            @mickym da habe ich aus Verzweiflung mal ausprobiert. Hier mit JSON nach Objekt:
                            1b17e6c7-8199-4c51-bdd5-8b585a20cd24-image.png

                            Mach da mal das Result weg - also keine Kombination - da wird intern dann das Objekt in Text gewandelt. Also die grünen Teile weg.

                            ___manalishi 1 Reply Last reply Reply Quote 0
                            • ___manalishi
                              ___manalishi @mickym last edited by

                              @mickym Ich habe bevor ich zum Exerciser bin den Result

                              {'code': 0, 'msg': 'OK', 'data': {'rows': [{'symbol': '.BERAUSDTFR8H', 'fundingRate': '0.0000337', 'fundingTime': 1743278400000, 'intervalSeconds': 14400}]}}
                              

                              mit https://jsonformatter.curiousconcept.com/# geprüft und dabei wohl umformatiert
                              Der "original" result zeigt einen syntax Fehler
                              c435dea0-8a81-47f3-940e-1dbf5d24a89b-image.png
                              hier mein abfragescript mit response.json
                              4632f66a-413c-4405-8e0e-4910e309acc1-image.png

                              mickym 1 Reply Last reply Reply Quote 0
                              • ___manalishi
                                ___manalishi @mickym last edited by

                                @mickym es sind die ' im result. mit " funktioniert. wtf. macht da jede api was anderes?

                                8ce3b384-e78d-41f0-a0e8-67b7cd70f45d-image.png

                                mickym 2 Replies Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @___manalishi last edited by mickym

                                  @___manalishi sagte in JSONATA Filter auf json array:

                                  {'code': 0, 'msg': 'OK', 'data': {'rows': [{'symbol': '.BERAUSDTFR8H', 'fundingRate': '0.0000337', 'fundingTime': 1743278400000, 'intervalSeconds': 14400}]}}

                                  Das Original zeigt deshalb einen Fehler - weil der Exerciser doppelte Gänsefüsschen braucht. Wenn Du in einem Editor die ' durch " ersetzt - dann gehts eigentlich

                                  {"code": 0, "msg": "OK", "data": {"rows": [{"symbol": ".BERAUSDTFR8H", "fundingRate": "0.0000337", "fundingTime": 1743278400000, "intervalSeconds": 14400}]}}
                                  

                                  Wenn Du mein Blockly nimmst dann siehst Du dass nach der Umwandlung in ein Objekt keine Gänsefüsschen um die Eigenschaften sind.

                                  63b757f0-d6f7-401b-9633-3ec56ce010a7-image.png

                                  Das mit den einfachen ' liegt eher am Blockly oder an exec und Du letztlich eine Bildschirmausgabe interpretierst. Weil exec liefert Dir ja stdout zurück - das ist keine API.

                                  1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @___manalishi last edited by

                                    @___manalishi Nein JSON darf eigentlich nur " geben. Kann aber mit Deinem exec zu tun haben. Dann ersetze einfach in Deinem result noch die ' durch ".

                                    1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @___manalishi last edited by mickym

                                      @___manalishi sagte in JSONATA Filter auf json array:

                                      wtf. macht da jede api was anderes?

                                      Wie gesagt exec ist keine API, sondern liefert Dir die Bildschirmausgabe stdout zurück. Also schau ob Du das gegen " ersetzen kannst.
                                      Aber Du siehst man kommt den Dingen schon gemeinsam auf die Spur. Liegt jedenfalls nicht an Deinem JSONATA Code.

                                      ___manalishi 1 Reply Last reply Reply Quote 0
                                      • ___manalishi
                                        ___manalishi @mickym last edited by ___manalishi

                                        @mickym said in JSONATA Filter auf json array:

                                        hst man kommt

                                        Vielen Dank für deinen Support
                                        Habe mit

                                        sed
                                        

                                        die Ausgabedatei geparsed und dann mit

                                        cat
                                        

                                        ausgeben und als result im Blockly geparsed

                                        ed82cbd2-c993-4488-a5ce-55413607577a-image.png

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        612
                                        Online

                                        31.7k
                                        Users

                                        79.7k
                                        Topics

                                        1.3m
                                        Posts

                                        3
                                        25
                                        652
                                        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