Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. JSON Objekte in Liste

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

JSON Objekte in Liste

Scheduled Pinned Locked Moved Off Topic
94 Posts 3 Posters 8.3k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    legro
    wrote on last edited by legro
    #1

    Als (immer noch) Anfänger in Sachen Javascript bekomme ich es ohne Hilfe nicht hin.

    Ich habe ein JSON-Objekt Tarife in einem Datenpunkt StromBezug gespeichert. Das Objekt Tarife enthält eine Liste. Nun möchte ich gerne auf die einzelnen Felder in dieser Struktur zugreifen.

    Wie komme ich beispielsweise an den Inhalt von Tarife[1].Intervall.Endwert es zweiten Elementes aus dieser Liste?

    Das Problem ist wohl, dass man nicht über eckige Klammern auf ein Element der Liste selektieren kann. Man erhält stets undifined. Innerhalb eines Objektes kann ich hingegen problemlos mit dem Selektor "." auf alle Felder selektieren.

    8d6bca91-ce19-4100-b993-9c5ba87d1143-image.png

    {
      "Tarife": [
        {
          "Tarif1": {
            "Energiepreis": 0.3963,
            "Intervall": {
              "Startwert": 0,
              "Endwert": 486303
            },
            "Zeitraum": {
              "Start": "2023-01-01",
              "Ende": "2023-06-30"
            }
          }
        },
        {
          "Tarif2": {
            "Energiepreis": 0.3328,
            "Intervall": {
              "Startwert": 486303,
              "Endwert": null
            },
            "Zeitraum": {
              "Start": "2023-07-01",
              "Ende": "2024-06-30"
            }
          }
        }
      ]
    }
    

    Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
    Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

    paul53P 1 Reply Last reply
    0
    • L legro

      Als (immer noch) Anfänger in Sachen Javascript bekomme ich es ohne Hilfe nicht hin.

      Ich habe ein JSON-Objekt Tarife in einem Datenpunkt StromBezug gespeichert. Das Objekt Tarife enthält eine Liste. Nun möchte ich gerne auf die einzelnen Felder in dieser Struktur zugreifen.

      Wie komme ich beispielsweise an den Inhalt von Tarife[1].Intervall.Endwert es zweiten Elementes aus dieser Liste?

      Das Problem ist wohl, dass man nicht über eckige Klammern auf ein Element der Liste selektieren kann. Man erhält stets undifined. Innerhalb eines Objektes kann ich hingegen problemlos mit dem Selektor "." auf alle Felder selektieren.

      8d6bca91-ce19-4100-b993-9c5ba87d1143-image.png

      {
        "Tarife": [
          {
            "Tarif1": {
              "Energiepreis": 0.3963,
              "Intervall": {
                "Startwert": 0,
                "Endwert": 486303
              },
              "Zeitraum": {
                "Start": "2023-01-01",
                "Ende": "2023-06-30"
              }
            }
          },
          {
            "Tarif2": {
              "Energiepreis": 0.3328,
              "Intervall": {
                "Startwert": 486303,
                "Endwert": null
              },
              "Zeitraum": {
                "Start": "2023-07-01",
                "Ende": "2024-06-30"
              }
            }
          }
        ]
      }
      
      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @legro sagte: Wie komme ich beispielsweise an den Inhalt von Tarife[1].Intervall.Endwert es zweiten Elementes aus dieser Liste?

      Versuche es mal so:

      Blockly_temp.JPG

      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

      mickymM L 2 Replies Last reply
      0
      • paul53P paul53

        @legro sagte: Wie komme ich beispielsweise an den Inhalt von Tarife[1].Intervall.Endwert es zweiten Elementes aus dieser Liste?

        Versuche es mal so:

        Blockly_temp.JPG

        mickymM Online
        mickymM Online
        mickym
        Most Active
        wrote on last edited by
        #3

        eee92cff-e6b9-4991-ac91-608b91d562d0-image.png

        Also Attribut:

        Tarife.0.Tarif1.Intervall.Endwert
        

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        1 Reply Last reply
        0
        • paul53P paul53

          @legro sagte: Wie komme ich beispielsweise an den Inhalt von Tarife[1].Intervall.Endwert es zweiten Elementes aus dieser Liste?

          Versuche es mal so:

          Blockly_temp.JPG

          L Offline
          L Offline
          legro
          wrote on last edited by legro
          #4

          @paul53 @mickym

          Vielen Dank euch beiden für die schnelle und tolle Hilfe!

          Folgendes habe ich probiert ..

          b05909a9-534f-4c59-a658-4c8b1f3e1562-image.png

          Die erste Lösung hat direkt funktioniert.

          Beim zweiten Beispiel erhalte ich folgende Fehlermeldung ..

          16:45:22.015	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
          16:45:22.021	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
          16:45:22.022	error	javascript.0 (2182) script.js.TestSkripte.JSON_Test: TypeError: Cannot read properties of undefined (reading '1')
          16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:5:27
          16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:8:3
          

          Habe ich dabei etwas falsch gemacht?

          Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
          Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

          mickymM paul53P 3 Replies Last reply
          0
          • L legro

            @paul53 @mickym

            Vielen Dank euch beiden für die schnelle und tolle Hilfe!

            Folgendes habe ich probiert ..

            b05909a9-534f-4c59-a658-4c8b1f3e1562-image.png

            Die erste Lösung hat direkt funktioniert.

            Beim zweiten Beispiel erhalte ich folgende Fehlermeldung ..

            16:45:22.015	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
            16:45:22.021	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
            16:45:22.022	error	javascript.0 (2182) script.js.TestSkripte.JSON_Test: TypeError: Cannot read properties of undefined (reading '1')
            16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:5:27
            16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:8:3
            

            Habe ich dabei etwas falsch gemacht?

            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by
            #5

            @legro Na der Tarif2 ist Bestandteil des 2. Array Elements.

            1413bab7-d32f-41a8-9705-8fe42af55020-image.png

            Tarife.1.Tarif2.Intervall.Startwert
            

            Deswegen musst Du mit Tarife.1 das 2. Array Element referenzieren. Ich hab bewußt den Startwert genommen, da der Endwert dort ja null ist.

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            1 Reply Last reply
            0
            • L legro

              @paul53 @mickym

              Vielen Dank euch beiden für die schnelle und tolle Hilfe!

              Folgendes habe ich probiert ..

              b05909a9-534f-4c59-a658-4c8b1f3e1562-image.png

              Die erste Lösung hat direkt funktioniert.

              Beim zweiten Beispiel erhalte ich folgende Fehlermeldung ..

              16:45:22.015	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
              16:45:22.021	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
              16:45:22.022	error	javascript.0 (2182) script.js.TestSkripte.JSON_Test: TypeError: Cannot read properties of undefined (reading '1')
              16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:5:27
              16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:8:3
              

              Habe ich dabei etwas falsch gemacht?

              mickymM Online
              mickymM Online
              mickym
              Most Active
              wrote on last edited by mickym
              #6

              @legro Du musst ja vorher das Array erst einer Variablen zuweisen. Deswegen finde ich das umständlicher. Du setzt ja Tarif auf das ganze Objekt - musst aber erst mit dem Attribut Tarife das Array aus dem Objekt herauslösen.

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              L 1 Reply Last reply
              0
              • L legro

                @paul53 @mickym

                Vielen Dank euch beiden für die schnelle und tolle Hilfe!

                Folgendes habe ich probiert ..

                b05909a9-534f-4c59-a658-4c8b1f3e1562-image.png

                Die erste Lösung hat direkt funktioniert.

                Beim zweiten Beispiel erhalte ich folgende Fehlermeldung ..

                16:45:22.015	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
                16:45:22.021	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                16:45:22.022	error	javascript.0 (2182) script.js.TestSkripte.JSON_Test: TypeError: Cannot read properties of undefined (reading '1')
                16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:5:27
                16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:8:3
                

                Habe ich dabei etwas falsch gemacht?

                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by paul53
                #7

                @legro sagte : Habe ich dabei etwas falsch gemacht?

                Du hast das Attribut "Tarife" vergessen, um die Liste zu erzeugen und außerdem eine zweite Variable Liste verwendet.

                Blockly_temp.JPG

                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 Reply Last reply
                0
                • mickymM mickym

                  @legro Du musst ja vorher das Array erst einer Variablen zuweisen. Deswegen finde ich das umständlicher. Du setzt ja Tarif auf das ganze Objekt - musst aber erst mit dem Attribut Tarife das Array aus dem Objekt herauslösen.

                  L Offline
                  L Offline
                  legro
                  wrote on last edited by legro
                  #8

                  @mickym

                  Jetzt wollte ich's wissen! Um das Ganze besser zu verstehen, habe ich die Objektnamen Tarif1, Tarif2 weggelassen ..

                  {
                    "Tarife": [
                      {
                        {
                          "Name" : "Tarif1"
                          "Energiepreis": 0.3963,
                          "Intervall": {
                            "Startwert": 0,
                            "Endwert": 486303
                          },
                          "Zeitraum": {
                            "Start": "2023-01-01",
                            "Ende": "2023-06-30"
                          }
                        }
                      },
                      {
                        {
                          "Name" : "Tarif2"
                          "Energiepreis": 0.3328,
                          "Intervall": {
                            "Startwert": 486303,
                            "Endwert": null
                          },
                          "Zeitraum": {
                            "Start": "2023-07-01",
                            "Ende": "2024-06-30"
                          }
                        }
                      }
                    ]
                  }
                  

                  .. und folgendes kodiert ..

                  544197fd-7609-4093-a030-66ec725e8b4c-image.png

                  Dies funktioniert nicht mehr. Ich erhalte, egal auf was ich selektiere, stets null.

                  17:13:13.763	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
                  17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
                  17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
                  17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                  

                  Welchen Denkfehler habe ich nun schon wieder gemacht?

                  Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                  Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                  paul53P mickymM 2 Replies Last reply
                  0
                  • L legro

                    @mickym

                    Jetzt wollte ich's wissen! Um das Ganze besser zu verstehen, habe ich die Objektnamen Tarif1, Tarif2 weggelassen ..

                    {
                      "Tarife": [
                        {
                          {
                            "Name" : "Tarif1"
                            "Energiepreis": 0.3963,
                            "Intervall": {
                              "Startwert": 0,
                              "Endwert": 486303
                            },
                            "Zeitraum": {
                              "Start": "2023-01-01",
                              "Ende": "2023-06-30"
                            }
                          }
                        },
                        {
                          {
                            "Name" : "Tarif2"
                            "Energiepreis": 0.3328,
                            "Intervall": {
                              "Startwert": 486303,
                              "Endwert": null
                            },
                            "Zeitraum": {
                              "Start": "2023-07-01",
                              "Ende": "2024-06-30"
                            }
                          }
                        }
                      ]
                    }
                    

                    .. und folgendes kodiert ..

                    544197fd-7609-4093-a030-66ec725e8b4c-image.png

                    Dies funktioniert nicht mehr. Ich erhalte, egal auf was ich selektiere, stets null.

                    17:13:13.763	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
                    17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
                    17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
                    17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                    

                    Welchen Denkfehler habe ich nun schon wieder gemacht?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by paul53
                    #9

                    @legro sagte: Welchen Denkfehler habe ich nun schon wieder gemacht?

                    Du hast Objekte ohne Bezeichner. Richtig:

                    {
                      "Tarife": [
                        {
                            "Name" : "Tarif1",
                            "Energiepreis": 0.3963,
                            "Intervall": {
                              "Startwert": 0,
                              "Endwert": 486303
                            },
                            "Zeitraum": {
                              "Start": "2023-01-01",
                              "Ende": "2023-06-30"
                            }
                        },
                        {
                            "Name" : "Tarif2",
                            "Energiepreis": 0.3328,
                            "Intervall": {
                              "Startwert": 486303,
                              "Endwert": null
                            },
                            "Zeitraum": {
                              "Start": "2023-07-01",
                              "Ende": "2024-06-30"
                            }
                        }
                      ]
                    }
                    

                    Damit funktioniert es auch so:

                    Blockly_temp.JPG

                    Die Wandlung "JSON nach Objekt" ist unnötig, denn das macht der Block "Attribut" von sich aus.

                    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

                    L 1 Reply Last reply
                    0
                    • paul53P paul53

                      @legro sagte: Welchen Denkfehler habe ich nun schon wieder gemacht?

                      Du hast Objekte ohne Bezeichner. Richtig:

                      {
                        "Tarife": [
                          {
                              "Name" : "Tarif1",
                              "Energiepreis": 0.3963,
                              "Intervall": {
                                "Startwert": 0,
                                "Endwert": 486303
                              },
                              "Zeitraum": {
                                "Start": "2023-01-01",
                                "Ende": "2023-06-30"
                              }
                          },
                          {
                              "Name" : "Tarif2",
                              "Energiepreis": 0.3328,
                              "Intervall": {
                                "Startwert": 486303,
                                "Endwert": null
                              },
                              "Zeitraum": {
                                "Start": "2023-07-01",
                                "Ende": "2024-06-30"
                              }
                          }
                        ]
                      }
                      

                      Damit funktioniert es auch so:

                      Blockly_temp.JPG

                      Die Wandlung "JSON nach Objekt" ist unnötig, denn das macht der Block "Attribut" von sich aus.

                      L Offline
                      L Offline
                      legro
                      wrote on last edited by
                      #10

                      @paul53

                      Damit funktioniert es auch so: ..

                      Ich bin verwirrt. Tut es eben nicht. Oben habe ich die Fehlermeldung dokumentiert.

                      Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                      Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                      paul53P 1 Reply Last reply
                      0
                      • L legro

                        @paul53

                        Damit funktioniert es auch so: ..

                        Ich bin verwirrt. Tut es eben nicht. Oben habe ich die Fehlermeldung dokumentiert.

                        paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by paul53
                        #11

                        @legro sagte: Tut es eben nicht.

                        Du musst das (ungültige) Objekt (JSON) korrigieren: Lösche Zeilen 3, 15, 17 und 30. Außerdem fehlt jeweils ein Komma hinter "Tarif1" und "Tarif2".

                        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

                        L 1 Reply Last reply
                        -1
                        • L legro

                          @mickym

                          Jetzt wollte ich's wissen! Um das Ganze besser zu verstehen, habe ich die Objektnamen Tarif1, Tarif2 weggelassen ..

                          {
                            "Tarife": [
                              {
                                {
                                  "Name" : "Tarif1"
                                  "Energiepreis": 0.3963,
                                  "Intervall": {
                                    "Startwert": 0,
                                    "Endwert": 486303
                                  },
                                  "Zeitraum": {
                                    "Start": "2023-01-01",
                                    "Ende": "2023-06-30"
                                  }
                                }
                              },
                              {
                                {
                                  "Name" : "Tarif2"
                                  "Energiepreis": 0.3328,
                                  "Intervall": {
                                    "Startwert": 486303,
                                    "Endwert": null
                                  },
                                  "Zeitraum": {
                                    "Start": "2023-07-01",
                                    "Ende": "2024-06-30"
                                  }
                                }
                              }
                            ]
                          }
                          

                          .. und folgendes kodiert ..

                          544197fd-7609-4093-a030-66ec725e8b4c-image.png

                          Dies funktioniert nicht mehr. Ich erhalte, egal auf was ich selektiere, stets null.

                          17:13:13.763	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
                          17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
                          17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
                          17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                          

                          Welchen Denkfehler habe ich nun schon wieder gemacht?

                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          wrote on last edited by
                          #12

                          @legro sagte in JSON Objekte in Liste:

                          etzt wollte ich's wissen! Um das Ganze besser zu verstehen, habe ich die Objektnamen Tarif1, Tarif2 weggelassen .

                          Du darfst das nicht einfach weglassen. Jedes Objekt wird durch eine Eigenschaft festgelegt und die hast Du damit weggenommen.

                          Ein JSON Objekt wird durch geschweifte Klammern definiert, dabei besteht es aus verschiedenen Eigenschaften in Anführungszeichen und einem Wert, der durch einen Doppelpunkt getrennt ist.

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          1 Reply Last reply
                          0
                          • paul53P paul53

                            @legro sagte: Tut es eben nicht.

                            Du musst das (ungültige) Objekt (JSON) korrigieren: Lösche Zeilen 3, 15, 17 und 30. Außerdem fehlt jeweils ein Komma hinter "Tarif1" und "Tarif2".

                            L Offline
                            L Offline
                            legro
                            wrote on last edited by legro
                            #13

                            @paul53 @mickym

                            Ich habe verstanden worin mein Fehler bestand. Die {..} um die Listenobjekte müssen weg, wenn diese Objekte keinen Namen (mehr) besitzen.

                            Aber es funktioniert noch immer nicht. Egal auf was ich selektiere, ich erhalte ich in den nachfolgenden Beispielen stets null.
                            2ea22af8-e48b-4a29-8e3e-34a63c88fe3b-image.png

                            Ebenso erhalte ich die Liste nicht mehr ausgegeben, wenn ich ..
                            58b5410c-0bff-48cd-8dfb-9639b66d138f-image.png

                            Was mache ich nun schon wieder falsch?

                            Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                            Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                            paul53P mickymM 2 Replies Last reply
                            0
                            • L legro

                              @paul53 @mickym

                              Ich habe verstanden worin mein Fehler bestand. Die {..} um die Listenobjekte müssen weg, wenn diese Objekte keinen Namen (mehr) besitzen.

                              Aber es funktioniert noch immer nicht. Egal auf was ich selektiere, ich erhalte ich in den nachfolgenden Beispielen stets null.
                              2ea22af8-e48b-4a29-8e3e-34a63c88fe3b-image.png

                              Ebenso erhalte ich die Liste nicht mehr ausgegeben, wenn ich ..
                              58b5410c-0bff-48cd-8dfb-9639b66d138f-image.png

                              Was mache ich nun schon wieder falsch?

                              paul53P Offline
                              paul53P Offline
                              paul53
                              wrote on last edited by
                              #14

                              @legro sagte: schon wieder falsch?

                              Zeig mal das JSON.

                              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

                              L 1 Reply Last reply
                              0
                              • paul53P paul53

                                @legro sagte: schon wieder falsch?

                                Zeig mal das JSON.

                                L Offline
                                L Offline
                                legro
                                wrote on last edited by legro
                                #15

                                @paul53

                                Es ist (hoffentlich) identisch mit dem von dir vorgeschlagenen JSON.

                                {
                                  "Tarife": [
                                      {
                                        "Name" : "Tarif1"
                                        "Energiepreis": 0.3963,
                                        "Intervall": {
                                          "Startwert": 0,
                                          "Endwert": 486303
                                        },
                                        "Zeitraum": {
                                          "Start": "2023-01-01",
                                          "Ende": "2023-06-30"
                                        }
                                    },
                                      {
                                        "Name" : "Tarif2"
                                        "Energiepreis": 0.3328,
                                        "Intervall": {
                                          "Startwert": 486303,
                                          "Endwert": null
                                        },
                                        "Zeitraum": {
                                          "Start": "2023-07-01",
                                          "Ende": "2024-06-30"
                                        }
                                      }
                                  ]
                                }
                                

                                Ich habe einen Verdacht ..

                                Damit die Selektion via "." anstelle von [Index] funktioniert, müssen die Listenobjekte benannt sein.

                                Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                                Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                                paul53P 1 Reply Last reply
                                0
                                • L legro

                                  @paul53

                                  Es ist (hoffentlich) identisch mit dem von dir vorgeschlagenen JSON.

                                  {
                                    "Tarife": [
                                        {
                                          "Name" : "Tarif1"
                                          "Energiepreis": 0.3963,
                                          "Intervall": {
                                            "Startwert": 0,
                                            "Endwert": 486303
                                          },
                                          "Zeitraum": {
                                            "Start": "2023-01-01",
                                            "Ende": "2023-06-30"
                                          }
                                      },
                                        {
                                          "Name" : "Tarif2"
                                          "Energiepreis": 0.3328,
                                          "Intervall": {
                                            "Startwert": 486303,
                                            "Endwert": null
                                          },
                                          "Zeitraum": {
                                            "Start": "2023-07-01",
                                            "Ende": "2024-06-30"
                                          }
                                        }
                                    ]
                                  }
                                  

                                  Ich habe einen Verdacht ..

                                  Damit die Selektion via "." anstelle von [Index] funktioniert, müssen die Listenobjekte benannt sein.

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  wrote on last edited by paul53
                                  #16

                                  @legro sagte: identisch mit dem von dir vorgeschlagenen JSON.

                                  @paul53 sagte in JSON Objekte in Liste:

                                  Außerdem fehlt jeweils ein Komma hinter "Tarif1" und "Tarif2".

                                  Zeilen 4, 16.

                                  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 Reply Last reply
                                  1
                                  • mickymM Online
                                    mickymM Online
                                    mickym
                                    Most Active
                                    wrote on last edited by
                                    #17

                                    Hier mal die Definitionen, die Du verinnerlichen musst:

                                    =======================================================================
                                    Also ein ARRAY beginnt IMMER mit einer ECKIGEN Klammer und schließt mit einer ECKIGEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt.

                                    =======================================================================

                                    Also ein OBJEKT beginnt IMMER mit einer GESCHWEIFTEN Klammer und schließt mit einer GESCHWEIFTEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt. Ein Element besteht immer aus einer Eigenschaft in Anführungszeichen und dann ein Doppelpunkt und dann dem Wert der Eigenschaft. So wie Du es zuerst gemacht hast.

                                    =======================================================================

                                    Und wie Du dann üben kannst - kannst an diesem Mammut Thread sehen. ;)

                                    https://forum.iobroker.net/post/905403

                                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                    L 1 Reply Last reply
                                    0
                                    • L legro

                                      @paul53 @mickym

                                      Ich habe verstanden worin mein Fehler bestand. Die {..} um die Listenobjekte müssen weg, wenn diese Objekte keinen Namen (mehr) besitzen.

                                      Aber es funktioniert noch immer nicht. Egal auf was ich selektiere, ich erhalte ich in den nachfolgenden Beispielen stets null.
                                      2ea22af8-e48b-4a29-8e3e-34a63c88fe3b-image.png

                                      Ebenso erhalte ich die Liste nicht mehr ausgegeben, wenn ich ..
                                      58b5410c-0bff-48cd-8dfb-9639b66d138f-image.png

                                      Was mache ich nun schon wieder falsch?

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      wrote on last edited by mickym
                                      #18

                                      @legro Und hier hängt es halt davon ab, ob Du mit Listen arbeiten willst oder nicht. Ich habe Dir ja den direkten Pfad gezeigt, weil ich den Umweg über Listen zu umständlich fand.

                                      Ich empfehle Dir grundsätzlich so ein Tool wie: https://jsonformatter.org/ zu verwenden - da siehst Du schon auf den ersten Blick dass Du Dich verheddert hast. ;)

                                      d844040d-3f89-47d2-92e1-592601ddd0e9-image.png

                                      was gefehlt hat, sind die beiden Kommas. ;) Habe ich im Screenshot markiert.

                                      621f8546-f882-43b4-8755-29224d302263-image.png

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      1 Reply Last reply
                                      1
                                      • mickymM mickym

                                        Hier mal die Definitionen, die Du verinnerlichen musst:

                                        =======================================================================
                                        Also ein ARRAY beginnt IMMER mit einer ECKIGEN Klammer und schließt mit einer ECKIGEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt.

                                        =======================================================================

                                        Also ein OBJEKT beginnt IMMER mit einer GESCHWEIFTEN Klammer und schließt mit einer GESCHWEIFTEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt. Ein Element besteht immer aus einer Eigenschaft in Anführungszeichen und dann ein Doppelpunkt und dann dem Wert der Eigenschaft. So wie Du es zuerst gemacht hast.

                                        =======================================================================

                                        Und wie Du dann üben kannst - kannst an diesem Mammut Thread sehen. ;)

                                        https://forum.iobroker.net/post/905403

                                        L Offline
                                        L Offline
                                        legro
                                        wrote on last edited by legro
                                        #19

                                        @mickym @paul53

                                        Es funktioniert. Es lag natürlich an den fehlenden Kommas.

                                        VIELEN DANK FÜR EURE GEDULD UND GROßARTIGE HILFE

                                        Ich versuche einmal eine Zusammenfassung ..

                                        In Blockly funktioniert die in ARRAYs übliche Syntax zum Selektieren auf die einzelnen Elemente nicht mittels der Angabe [Index], sondern ebenfalls über "."

                                        In den Anfängen hatte ich kodiert ..

                                        Tarife[1].Name
                                        Tarife[0].Intervall.Endwert
                                        ..

                                        Auf die Idee, dass hier, der Index zwischen zwei Punkten einzuschließen, es tut, bin ich nicht gekommen.

                                        Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                                        Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                                        L 1 Reply Last reply
                                        0
                                        • L legro

                                          @mickym @paul53

                                          Es funktioniert. Es lag natürlich an den fehlenden Kommas.

                                          VIELEN DANK FÜR EURE GEDULD UND GROßARTIGE HILFE

                                          Ich versuche einmal eine Zusammenfassung ..

                                          In Blockly funktioniert die in ARRAYs übliche Syntax zum Selektieren auf die einzelnen Elemente nicht mittels der Angabe [Index], sondern ebenfalls über "."

                                          In den Anfängen hatte ich kodiert ..

                                          Tarife[1].Name
                                          Tarife[0].Intervall.Endwert
                                          ..

                                          Auf die Idee, dass hier, der Index zwischen zwei Punkten einzuschließen, es tut, bin ich nicht gekommen.

                                          L Offline
                                          L Offline
                                          legro
                                          wrote on last edited by legro
                                          #20

                                          Hat sich erledigt.

                                          Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                                          Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                                          mickymM 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          749

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe