Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] JSON in Blockly zerlegen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    491

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

[gelöst] JSON in Blockly zerlegen

Geplant Angeheftet Gesperrt Verschoben Blockly
22 Beiträge 5 Kommentatoren 5.7k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • RaspiUserR RaspiUser

    @homoran @BananaJoe

    ... ich hatte bereits erwähnt, dass ich "Blockly Neuland" betreten habe. Über einfache "IF ... THEN" Skripte (Sozusagen Kreisliga) bin ich (noch) nicht hinaus gekommen.
    Wenn ihr Beide (Champions League) euch unterhaltet kann ich nur mit offenem Mund zuhören. Ich habe probiert der Diskussion zu folgen aber es gelingt mir nicht wirklich ... sorry. :cry:

    Könnt ihr mal eine Antwort ("Kochrezept") zu meiner Frage so formulieren das ich eine Chance habe ... ?! :cold_sweat:

    Und: Ich habe eine Doku zu blockly ...https://hobbyblogging.de/iobroker-blockly
    Die werde ich mir mal "unter das Kopfkissen" legen. Habt ihr da noch eine weitere Empfehlung ?

    AsgothianA Offline
    AsgothianA Offline
    Asgothian
    Developer
    schrieb am zuletzt editiert von
    #13

    @raspiuser sagte in JSON in Blockly zerlegen:

    Könnt ihr mal eine Antwort ("Kochrezept") zu meiner Frage so formulieren das ich eine Chance habe ... ?! :cold_sweat:

    Und: Ich habe eine Doku zu blockly ...https://hobbyblogging.de/iobroker-blockly
    Die werde ich mir mal "unter das Kopfkissen" legen. Habt ihr da noch eine weitere Empfehlung ?

    Das ist schon einmal ein guter Anfang. Allerdings fürchte ich das Du bei dem Verständnis weniger am Blockly und mehr an der vorhandenen Datenstruktur knabberst:

    nehmen wir einfach mal das folgende Objekt:

    { 
       "wbec": {
         "inhalt1":"1",
        "inhalt2":"2",
       },
       "data": [
         {
           "i1": 1,
           "i2":2,
         },
         {
           "i1": 55,
           "i2":56,
         } 
       ],
       "raw":"somerawtexthere:"
    }
    

    Auf der obersten Ebene hat dieses Objekt 3 Properties, auf die du mit Namen zugreifen kannst. Das sind wbec, data und raw.

    Die Property raw ist einfach - dahinter steht nur ein Text.
    Die Property wbec ist etwas komplexer - dieses ist wieder ein JSON Objekt mit den Properties inhalt1 und inhalt2. Auf diese kannst du direkt (Attribut wbec.inhalt1 vom Objekt ...) zugreifen. Alternativ weist du den Wert von Attribut wbec vom Objekt ... einer Variable zu, und nutzt dann Attribut Inhalt1 vom Objekt... nochmal, wobei du die Variable als Objekt andockst.
    Die Property data ist noch eine ebene komplexer. Dabei handelt es sich um ein array - ein Feld von verschiedenen Objekten. Erkennbar ist das an [ und ] die Anfang und Ende des Arrays bezeichnen. Auf den Inhalt des Arrays kannst du nur über einen Index zugreifen. Dieser beginnt mit 0, sprich wenn die Variable meinFeld ein Array ist, dann ist meinFeld[0] der erste Eintrag im Array, meinFeld[1] dann der 2. und so weiter. In dem oben stehenden Beispiel ist also unter der Property data ein Array mit 2 Einträgen eingetragen.
    Problematisch ist das der Baustein Attribut ... vom Objekt ... nur auf reines JSON angewendet werden kann. Dementsprechend funktioniert Attribut wbec.box[0].energyP ... nicht. In so einem Fall musst du erst das Array extrahieren:
    BoxArray = Attribut wbec.box vom Objekt...
    um dann davon den entsprechenden Eintrag zu holen.

    Jetzt wird es leider hässlich. Irgendjemand hat beschlossen dass

    • Arrays in Blockly als Listen geführt werden
    • Listen einträge von 1 bis n haben, nicht 0 bis n-1 wie Arrays in JS.

    Dementsprechend bekommst Du also deine Objekt in dem du den Baustein `aus der Liste BoxArray nimm den 1. Eintrag' nutzt.

    Der Baustein mit dem du letztendlich auf das Attribut energyP kommst lautet also:
    Attribut EnergyP vom Objekt aus der Liste BoxArray nimm den 1. Eintrag

    Ich habe leider aktuell keinen Zugriff auf Blockly, daher kann ich das nicht direkt als Blockly darstellen.

    Ich hoffe es hat trotzdem geholfen.

    A.

    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

    RaspiUserR 1 Antwort Letzte Antwort
    3
    • AsgothianA Asgothian

      @raspiuser sagte in JSON in Blockly zerlegen:

      Könnt ihr mal eine Antwort ("Kochrezept") zu meiner Frage so formulieren das ich eine Chance habe ... ?! :cold_sweat:

      Und: Ich habe eine Doku zu blockly ...https://hobbyblogging.de/iobroker-blockly
      Die werde ich mir mal "unter das Kopfkissen" legen. Habt ihr da noch eine weitere Empfehlung ?

      Das ist schon einmal ein guter Anfang. Allerdings fürchte ich das Du bei dem Verständnis weniger am Blockly und mehr an der vorhandenen Datenstruktur knabberst:

      nehmen wir einfach mal das folgende Objekt:

      { 
         "wbec": {
           "inhalt1":"1",
          "inhalt2":"2",
         },
         "data": [
           {
             "i1": 1,
             "i2":2,
           },
           {
             "i1": 55,
             "i2":56,
           } 
         ],
         "raw":"somerawtexthere:"
      }
      

      Auf der obersten Ebene hat dieses Objekt 3 Properties, auf die du mit Namen zugreifen kannst. Das sind wbec, data und raw.

      Die Property raw ist einfach - dahinter steht nur ein Text.
      Die Property wbec ist etwas komplexer - dieses ist wieder ein JSON Objekt mit den Properties inhalt1 und inhalt2. Auf diese kannst du direkt (Attribut wbec.inhalt1 vom Objekt ...) zugreifen. Alternativ weist du den Wert von Attribut wbec vom Objekt ... einer Variable zu, und nutzt dann Attribut Inhalt1 vom Objekt... nochmal, wobei du die Variable als Objekt andockst.
      Die Property data ist noch eine ebene komplexer. Dabei handelt es sich um ein array - ein Feld von verschiedenen Objekten. Erkennbar ist das an [ und ] die Anfang und Ende des Arrays bezeichnen. Auf den Inhalt des Arrays kannst du nur über einen Index zugreifen. Dieser beginnt mit 0, sprich wenn die Variable meinFeld ein Array ist, dann ist meinFeld[0] der erste Eintrag im Array, meinFeld[1] dann der 2. und so weiter. In dem oben stehenden Beispiel ist also unter der Property data ein Array mit 2 Einträgen eingetragen.
      Problematisch ist das der Baustein Attribut ... vom Objekt ... nur auf reines JSON angewendet werden kann. Dementsprechend funktioniert Attribut wbec.box[0].energyP ... nicht. In so einem Fall musst du erst das Array extrahieren:
      BoxArray = Attribut wbec.box vom Objekt...
      um dann davon den entsprechenden Eintrag zu holen.

      Jetzt wird es leider hässlich. Irgendjemand hat beschlossen dass

      • Arrays in Blockly als Listen geführt werden
      • Listen einträge von 1 bis n haben, nicht 0 bis n-1 wie Arrays in JS.

      Dementsprechend bekommst Du also deine Objekt in dem du den Baustein `aus der Liste BoxArray nimm den 1. Eintrag' nutzt.

      Der Baustein mit dem du letztendlich auf das Attribut energyP kommst lautet also:
      Attribut EnergyP vom Objekt aus der Liste BoxArray nimm den 1. Eintrag

      Ich habe leider aktuell keinen Zugriff auf Blockly, daher kann ich das nicht direkt als Blockly darstellen.

      Ich hoffe es hat trotzdem geholfen.

      A.

      RaspiUserR Offline
      RaspiUserR Offline
      RaspiUser
      schrieb am zuletzt editiert von
      #14

      @asgothian said in JSON in Blockly zerlegen:

      Ich hoffe es hat trotzdem geholfen.

      UND WIE !!!! :+1:

      Dank deinen ausfürhrlichen Erläuterungen :clap: konnte ich es gut nachvollziehen (ob ich es verstanden und erneut anwenden kann wird sich noch zeigen). Und mit dem Blockly-Hinweisen von @paul53 (Danke!) sieht es jetzt so aus und funktioniert.

      46695fac-cbd9-443a-92fc-caacfe7b9ac9-grafik.png

      Danke auch an @BananaJoe und @Homoran

      paul53P 1 Antwort Letzte Antwort
      0
      • RaspiUserR RaspiUser

        @asgothian said in JSON in Blockly zerlegen:

        Ich hoffe es hat trotzdem geholfen.

        UND WIE !!!! :+1:

        Dank deinen ausfürhrlichen Erläuterungen :clap: konnte ich es gut nachvollziehen (ob ich es verstanden und erneut anwenden kann wird sich noch zeigen). Und mit dem Blockly-Hinweisen von @paul53 (Danke!) sieht es jetzt so aus und funktioniert.

        46695fac-cbd9-443a-92fc-caacfe7b9ac9-grafik.png

        Danke auch an @BananaJoe und @Homoran

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #15

        @raspiuser sagte: ob ich es verstanden

        Anscheinend noch nicht so richtig: Die Variable boxarray enthält kein Array, sondern ein Objekt.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        RaspiUserR 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @raspiuser sagte: ob ich es verstanden

          Anscheinend noch nicht so richtig: Die Variable boxarray enthält kein Array, sondern ein Objekt.

          RaspiUserR Offline
          RaspiUserR Offline
          RaspiUser
          schrieb am zuletzt editiert von
          #16

          @paul53 said in [gelöst] JSON in Blockly zerlegen:

          Die Variable boxarray enthält kein Array, sondern ein Objekt.

          OK, aber dieses Objekt enthält jetzt über "in der Liste..." weitere Objekte die ich mit "Attribut ... vom Objekt" auslesen kann, so richtig ?

          paul53P AsgothianA RaspiUserR 3 Antworten Letzte Antwort
          0
          • RaspiUserR RaspiUser

            @paul53 said in [gelöst] JSON in Blockly zerlegen:

            Die Variable boxarray enthält kein Array, sondern ein Objekt.

            OK, aber dieses Objekt enthält jetzt über "in der Liste..." weitere Objekte die ich mit "Attribut ... vom Objekt" auslesen kann, so richtig ?

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #17

            @raspiuser sagte: enthält jetzt über "in der Liste..." weitere Objekte

            Die Liste "box" enthält ein Objekt, weshalb ich die Variable mit box1 (1. Element der Liste) bezeichnet hatte.
            Ein Objekt enthält mehrere Attribute, auf die über ihren Bezeichner (z.B. "energyP") zugegriffen werden kann.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • RaspiUserR RaspiUser

              @paul53 said in [gelöst] JSON in Blockly zerlegen:

              Die Variable boxarray enthält kein Array, sondern ein Objekt.

              OK, aber dieses Objekt enthält jetzt über "in der Liste..." weitere Objekte die ich mit "Attribut ... vom Objekt" auslesen kann, so richtig ?

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb am zuletzt editiert von
              #18

              @raspiuser sagte in [gelöst] JSON in Blockly zerlegen:

              @paul53 said in [gelöst] JSON in Blockly zerlegen:

              Die Variable boxarray enthält kein Array, sondern ein Objekt.

              OK, aber dieses Objekt enthält jetzt über "in der Liste..." weitere Objekte die ich mit "Attribut ... vom Objekt" auslesen kann, so richtig ?

              Prinzipiell, ja. Besser wäre aber die Konstruktion so:

              Screen Shot 2022-01-11 at 17.48.37 .png

              Sprich so wie @paul53 es geschrieben hat.

              Das verstehst du dann auch in einem Jahr noch.

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              RaspiUserR 1 Antwort Letzte Antwort
              0
              • RaspiUserR RaspiUser

                @paul53 said in [gelöst] JSON in Blockly zerlegen:

                Die Variable boxarray enthält kein Array, sondern ein Objekt.

                OK, aber dieses Objekt enthält jetzt über "in der Liste..." weitere Objekte die ich mit "Attribut ... vom Objekt" auslesen kann, so richtig ?

                RaspiUserR Offline
                RaspiUserR Offline
                RaspiUser
                schrieb am zuletzt editiert von
                #19

                @paul53

                OK, aber dieses Objekt enthält jetzt über "in der Liste..." weitere Objekte die ich mit "Attribut ... vom Objekt" auslesen kann, so richtig ?

                Das Array wird über "in der Liste..." in ein Objekt zerlegt und enthält die Attribute, die ich mit "Attribut ... vom Objekt" auslesen kann.
                So richtig formuliert ?

                paul53P 1 Antwort Letzte Antwort
                0
                • AsgothianA Asgothian

                  @raspiuser sagte in [gelöst] JSON in Blockly zerlegen:

                  @paul53 said in [gelöst] JSON in Blockly zerlegen:

                  Die Variable boxarray enthält kein Array, sondern ein Objekt.

                  OK, aber dieses Objekt enthält jetzt über "in der Liste..." weitere Objekte die ich mit "Attribut ... vom Objekt" auslesen kann, so richtig ?

                  Prinzipiell, ja. Besser wäre aber die Konstruktion so:

                  Screen Shot 2022-01-11 at 17.48.37 .png

                  Sprich so wie @paul53 es geschrieben hat.

                  Das verstehst du dann auch in einem Jahr noch.

                  RaspiUserR Offline
                  RaspiUserR Offline
                  RaspiUser
                  schrieb am zuletzt editiert von
                  #20

                  @asgothian said in [gelöst] JSON in Blockly zerlegen:

                  Das verstehst du dann auch in einem Jahr noch.

                  Schaun'mer mal ... aber wie immer ... es gibt verschiede Lösungswege

                  1 Antwort Letzte Antwort
                  0
                  • RaspiUserR RaspiUser

                    @paul53

                    OK, aber dieses Objekt enthält jetzt über "in der Liste..." weitere Objekte die ich mit "Attribut ... vom Objekt" auslesen kann, so richtig ?

                    Das Array wird über "in der Liste..." in ein Objekt zerlegt und enthält die Attribute, die ich mit "Attribut ... vom Objekt" auslesen kann.
                    So richtig formuliert ?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #21

                    @raspiuser sagte: Das Array wird über "in der Liste..." in ein Objekt zerlegt

                    Über "in der Liste ..." wird das erste Element des Arrays referenziert. Das erste Element des Arrays ist ein Objekt.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • RaspiUserR Offline
                      RaspiUserR Offline
                      RaspiUser
                      schrieb am zuletzt editiert von
                      #22

                      @paul53 @asgothian

                      Noch eine Lösung ...

                      3b4adfbc-d733-4adf-aaef-6ee470f73809-grafik.png

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      779

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe