Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Blockly, json durchlaufen (Schlüssel gesucht)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly, json durchlaufen (Schlüssel gesucht)

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

      76c5ce9d-6b7a-4464-a34c-dc2510d1878f-image.png

      Damit bekomme ich die Werte des jsons aufgelistet, ich benötige aber, da dynamisch, den Schlüssel.

      {
        "Schlüssel_1": "Wert_1",
        "Schlüssel_2": "Wert_2",
        "Schlüssel_3": "Wert_3",
        "Schlüssel_4": "Wert_4"
      }
      

      Kann mir jemand sagen wie ich daran komme?

      BananaJoe L mickym 3 Replies Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active @accessburn last edited by BananaJoe

        @accessburn Das Ergebnis ist keine Liste (bzw. eine Liste mit einem Wert),
        weise es einer Variablen zu (mit Umwandlung):

        cadde34e-9f3f-4681-a79e-ce87753ba073-image.png

        Danach kannst du so auf die einzelnen Elemente zugreifen:
        63023c2c-b1e4-406b-9819-b6757f66c016-image.png

        Edit: Du willst nicht den Wert sondern den/die Schlüsselnamen?
        Da muss ich noch mal forschen

        1 Reply Last reply Reply Quote 0
        • L
          Lucky_ESA Developer Most Active @accessburn last edited by

          @accessburn

          Damit bekomme ich die Werte des jsons aufgelistet, ich benötige aber, da dynamisch, den Schlüssel.

          {
            "Schlüssel_1": "Wert_1",
            "Schlüssel_2": "Wert_2",
            "Schlüssel_3": "Wert_3",
            "Schlüssel_4": "Wert_4"
          }
          

          Kann mir jemand sagen wie ich daran komme?

          Dafür gibt es unter Objekte den Blockly Attribute des Objekts.
          Screenshot 2024-12-19 105657.png

          BananaJoe 1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active last edited by

            @lucky_esa an den Baustein hatte ich auch schon gedacht ... der funktioniert gerade nicht mit einem von JSON nach Objekt umgewandelten String ... ich suche noch nach dem Fehler.

            1 Reply Last reply Reply Quote 0
            • BananaJoe
              BananaJoe Most Active @Lucky_ESA last edited by

              @lucky_esa Problem gefunden: Es lag daran das mein Quell-JSON in [{ ... }] eingekapselt war,
              wenn ich die äußeren eckigen Klammern weglassen geht alles

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

                @accessburn Für solche Abfragen nimmst du auch am Besten JSONATA - was willst Du denn erreichen, den Namen eines Schlüssels zu einem bestimmten Wert?

                $each($,function($Value,$Key){$Value="Wert_2" ? $Key})
                

                869f3238-9808-4736-8bc7-527063eb26a0-image.png

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <block type="debug" id="BNetD~($YDvz)zezI+XW" x="-12" y="63">
                   <field name="Severity">info</field>
                   <value name="TEXT">
                     <shadow type="text" id="nhz}GB=C$8-UAa#jtkv#">
                       <field name="TEXT">test</field>
                     </shadow>
                     <block type="convert_jsonata" id="c,[-__*t#bd?Sm^~OcHP">
                       <value name="EXPRESSION">
                         <shadow type="text" id=":ayHCF81hX,y6][,lSgS">
                           <field name="TEXT">$each($,function($Value,$Key){$Value="Wert_2" ? $Key})</field>
                         </shadow>
                       </value>
                       <value name="TARGET">
                         <block type="convert_json2object" id="4iv4-.e*=$@Hu?S?nX%M">
                           <value name="VALUE">
                             <block type="text" id="50j*M[JOG:sY;_|/Hh4E">
                               <field name="TEXT">{   "Schlüssel_1": "Wert_1",   "Schlüssel_2": "Wert_2",   "Schlüssel_3": "Wert_3",   "Schlüssel_4": "Wert_4" }</field>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
                </xml>
                

                A 1 Reply Last reply Reply Quote 1
                • A
                  accessburn @mickym last edited by

                  @mickym Genau, es werden evtl. immer mehr Datenpunkte und ich will das nicht ständig pflegen, daher sollte die Anzahl der Objekte im json, der Schlüssel und der Wert dynamisch bleiben.

                  Deine Lösung muss ich mal testen. Danke fürs zusammenschustern 🙂

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  841
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  233
                  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