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. JavaScript
  5. [gelöst] Einlesen eines Arrays in Javascript klappt nicht

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

[gelöst] Einlesen eines Arrays in Javascript klappt nicht

Geplant Angeheftet Gesperrt Verschoben JavaScript
34 Beiträge 5 Kommentatoren 2.5k Aufrufe 3 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.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von Ben1983
    #1

    Hallo, ich möchte aus dem traccar Adapter ein Array auslesen:

    ![0_1740672886690_1960025e-5c75-426e-a3ac-326e44262fa5-image.png](Lade 100% hoch)

    Vor hatte ich es so:

    on(regExDeviceGeofences,(dp)=>{
        const Geofences = JSON.parse(dp.state.val);
    }
    

    Aber schon hier beim Parsen gibt es einen Fehler.
    Ist der DP vielleicht nicht korrekt definiert, oder wie müsste ich es parsen, damit man ein Array als Objekt erhält?

    {
      "type": "state",
      "common": {
        "name": "Geofences",
        "role": "json",
        "type": "string",
        "write": false,
        "read": true
      },
      "native": {},
      "from": "system.adapter.traccar.0",
      "user": "system.user.admin",
      "ts": 1740665087679,
      "_id": "traccar.0.devices.3.geofences",
      "acl": {
        "object": 1636,
        "state": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
      }
    }
    

    in einem anderen Array, welches nicht string sondern number enthält (allerdings auch als string definiert ist, geht es.

    T 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo, ich möchte aus dem traccar Adapter ein Array auslesen:

      ![0_1740672886690_1960025e-5c75-426e-a3ac-326e44262fa5-image.png](Lade 100% hoch)

      Vor hatte ich es so:

      on(regExDeviceGeofences,(dp)=>{
          const Geofences = JSON.parse(dp.state.val);
      }
      

      Aber schon hier beim Parsen gibt es einen Fehler.
      Ist der DP vielleicht nicht korrekt definiert, oder wie müsste ich es parsen, damit man ein Array als Objekt erhält?

      {
        "type": "state",
        "common": {
          "name": "Geofences",
          "role": "json",
          "type": "string",
          "write": false,
          "read": true
        },
        "native": {},
        "from": "system.adapter.traccar.0",
        "user": "system.user.admin",
        "ts": 1740665087679,
        "_id": "traccar.0.devices.3.geofences",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      in einem anderen Array, welches nicht string sondern number enthält (allerdings auch als string definiert ist, geht es.

      T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von
      #2

      @ben1983
      Was ist denn die Ausgabe wenn du den Datenpunkt einfach so ins log schreibst.

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      Ben1983B 1 Antwort Letzte Antwort
      0
      • haus-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von haus-automatisierung
        #3

        @ben1983 sagte in Einlesen eines Arrays in Javascript klappt nicht:

        Aber schon hier beim Parsen gibt es einen Fehler.

        Da fehlt eine Klammer am Ende

        on(regExDeviceGeofences, (dp) => {
            const Geofences = JSON.parse(dp.state.val);
        });
        

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        Ben1983B 1 Antwort Letzte Antwort
        0
        • haus-automatisierungH haus-automatisierung

          @ben1983 sagte in Einlesen eines Arrays in Javascript klappt nicht:

          Aber schon hier beim Parsen gibt es einen Fehler.

          Da fehlt eine Klammer am Ende

          on(regExDeviceGeofences, (dp) => {
              const Geofences = JSON.parse(dp.state.val);
          });
          
          Ben1983B Offline
          Ben1983B Offline
          Ben1983
          schrieb am zuletzt editiert von
          #4

          @haus-automatisierung die hatte ich tatsächlich beim hier rein kopieren vergessen.
          die ist schon da.

          haus-automatisierungH 1 Antwort Letzte Antwort
          0
          • Ben1983B Ben1983

            @haus-automatisierung die hatte ich tatsächlich beim hier rein kopieren vergessen.
            die ist schon da.

            haus-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von haus-automatisierung
            #5

            @ben1983 Dann ist alles richtig definiert und sollte so klappen. Wie genau lautet denn der Fehler?

            Und was genau steht im Datenpunkt. Zeig mal das JSON.

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            Ben1983B 1 Antwort Letzte Antwort
            0
            • T ticaki

              @ben1983
              Was ist denn die Ausgabe wenn du den Datenpunkt einfach so ins log schreibst.

              Ben1983B Offline
              Ben1983B Offline
              Ben1983
              schrieb am zuletzt editiert von
              #6

              @ticaki es steht entweder

              []
              

              oder

              ["zu Hause"]
              

              im Log

              1 Antwort Letzte Antwort
              0
              • haus-automatisierungH haus-automatisierung

                @ben1983 Dann ist alles richtig definiert und sollte so klappen. Wie genau lautet denn der Fehler?

                Und was genau steht im Datenpunkt. Zeig mal das JSON.

                Ben1983B Offline
                Ben1983B Offline
                Ben1983
                schrieb am zuletzt editiert von
                #7

                @haus-automatisierung
                2cbcab84-69a8-4699-9503-377cea6b5f94-image.png

                und

                Error in callback: SyntaxError: Unexpected token 'z', "zu Hause" is not valid JSON
                

                er kann es halt nicht parsen, aber wie mache ich denn sonst aus dem Stringarray ein Objekt, damit ich auf die einzelnen elemente zugreifen kann?

                T paul53P 2 Antworten Letzte Antwort
                0
                • Ben1983B Ben1983

                  @haus-automatisierung
                  2cbcab84-69a8-4699-9503-377cea6b5f94-image.png

                  und

                  Error in callback: SyntaxError: Unexpected token 'z', "zu Hause" is not valid JSON
                  

                  er kann es halt nicht parsen, aber wie mache ich denn sonst aus dem Stringarray ein Objekt, damit ich auf die einzelnen elemente zugreifen kann?

                  T Nicht stören
                  T Nicht stören
                  ticaki
                  schrieb am zuletzt editiert von
                  #8

                  @ben1983
                  Das sieht valide aus und ein typeof gibt auch string aus?

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  Ben1983B 1 Antwort Letzte Antwort
                  0
                  • T ticaki

                    @ben1983
                    Das sieht valide aus und ein typeof gibt auch string aus?

                    Ben1983B Offline
                    Ben1983B Offline
                    Ben1983
                    schrieb am zuletzt editiert von
                    #9

                    @ticaki ja

                    T 1 Antwort Letzte Antwort
                    0
                    • Ben1983B Ben1983

                      @ticaki ja

                      T Nicht stören
                      T Nicht stören
                      ticaki
                      schrieb am zuletzt editiert von
                      #10

                      @ben1983

                      und wenn du das editieren willst im State schaut es so aus?
                      Bildschirmfoto 2025-02-27 um 18.53.16.png

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      Ben1983B 1 Antwort Letzte Antwort
                      0
                      • T ticaki

                        @ben1983

                        und wenn du das editieren willst im State schaut es so aus?
                        Bildschirmfoto 2025-02-27 um 18.53.16.png

                        Ben1983B Offline
                        Ben1983B Offline
                        Ben1983
                        schrieb am zuletzt editiert von
                        #11

                        @ticaki Ganz genau.
                        Wie gesagt, ich bin der Meinung, dass das schon mal so ging.
                        Anscheinend ist der string das Problem.
                        it einem Number array geht es.

                        CodierknechtC 1 Antwort Letzte Antwort
                        0
                        • T Nicht stören
                          T Nicht stören
                          ticaki
                          schrieb am zuletzt editiert von
                          #12

                          @ben1983

                          Dann weiß ich auch nicht weiter - im Adapter sieht es aber aus, als wenn der das array nochmal in einen eigenen State schreibt mit join(', '). vielleicht dann daraus holen?!

                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                          Spenden

                          Ben1983B 1 Antwort Letzte Antwort
                          0
                          • Ben1983B Ben1983

                            @haus-automatisierung
                            2cbcab84-69a8-4699-9503-377cea6b5f94-image.png

                            und

                            Error in callback: SyntaxError: Unexpected token 'z', "zu Hause" is not valid JSON
                            

                            er kann es halt nicht parsen, aber wie mache ich denn sonst aus dem Stringarray ein Objekt, damit ich auf die einzelnen elemente zugreifen kann?

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

                            @ben1983 sagte: Error in callback: SyntaxError: Unexpected token 'z', "zu Hause" is not valid JSON

                            Dieser Fehler wird erzeugt, wenn der DP kein JSON, sondern ein Array enthält.

                            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

                            Ben1983B 1 Antwort Letzte Antwort
                            0
                            • Ben1983B Ben1983

                              @ticaki Ganz genau.
                              Wie gesagt, ich bin der Meinung, dass das schon mal so ging.
                              Anscheinend ist der string das Problem.
                              it einem Number array geht es.

                              CodierknechtC Online
                              CodierknechtC Online
                              Codierknecht
                              Developer Most Active
                              schrieb am zuletzt editiert von
                              #14

                              @ben1983

                              Geht auch mit string:

                              0a52fc92-05c0-49dc-9cd3-d636d656e356-grafik.png
                              3b193534-a24f-4496-8cb3-17c5add55974-grafik.png

                              {
                                "common": {
                                  "name": "array",
                                  "desc": "Manuell erzeugt",
                                  "role": "json",
                                  "type": "string",
                                  "read": true,
                                  "write": true
                                },
                                "type": "state",
                                "native": {},
                                "_id": "0_userdata.0.Test.array",
                                "acl": {
                                  "object": 1636,
                                  "state": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator"
                                },
                                "from": "system.adapter.admin.0",
                                "user": "system.user.admin",
                                "ts": 1740681459150
                              }
                              

                              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                              HmIP|ZigBee|Tasmota|Unifi
                              Zabbix Certified Specialist
                              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                              1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @ben1983 sagte: Error in callback: SyntaxError: Unexpected token 'z', "zu Hause" is not valid JSON

                                Dieser Fehler wird erzeugt, wenn der DP kein JSON, sondern ein Array enthält.

                                Ben1983B Offline
                                Ben1983B Offline
                                Ben1983
                                schrieb am zuletzt editiert von
                                #15

                                @paul53 Ja ok, er ist ja als JSON deklariert.
                                Was soll ich machen, der wert wird ja aus dem Adapter geschrrieben.

                                CodierknechtC paul53P 2 Antworten Letzte Antwort
                                0
                                • Ben1983B Ben1983

                                  @paul53 Ja ok, er ist ja als JSON deklariert.
                                  Was soll ich machen, der wert wird ja aus dem Adapter geschrrieben.

                                  CodierknechtC Online
                                  CodierknechtC Online
                                  Codierknecht
                                  Developer Most Active
                                  schrieb am zuletzt editiert von Codierknecht
                                  #16

                                  @ben1983 sagte in Einlesen eines Arrays in Javascript klappt nicht:

                                  er ist ja als JSON deklariert.

                                  Der ist genauso deklariert wie Deiner.
                                  Typ = "string", Role = "json".

                                  Edit
                                  Funktioniert mit Role = "state" aber ebenso.

                                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                  HmIP|ZigBee|Tasmota|Unifi
                                  Zabbix Certified Specialist
                                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                  1 Antwort Letzte Antwort
                                  0
                                  • T ticaki

                                    @ben1983

                                    Dann weiß ich auch nicht weiter - im Adapter sieht es aber aus, als wenn der das array nochmal in einen eigenen State schreibt mit join(', '). vielleicht dann daraus holen?!

                                    Ben1983B Offline
                                    Ben1983B Offline
                                    Ben1983
                                    schrieb am zuletzt editiert von
                                    #17

                                    @ticaki Also wenn ich in einem Testscript das array direkt rein schreibe, dann gibt es genau den Fehler,
                                    schreibe ich es mit JSON.stringify rein dann funktioniert das auslesen und parsen

                                    CodierknechtC 1 Antwort Letzte Antwort
                                    0
                                    • Ben1983B Ben1983

                                      @paul53 Ja ok, er ist ja als JSON deklariert.
                                      Was soll ich machen, der wert wird ja aus dem Adapter geschrrieben.

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

                                      @ben1983 sagte: der wert wird ja aus dem Adapter geschrrieben.

                                      Issue auf Github erstellen.

                                      Workaround:

                                      on(regExDeviceGeofences,(dp)=>{
                                          let Geofences = dp.state.val;
                                          if(typeof Geofences == 'string') Geofences = JSON.parse(Geofences);
                                      };
                                      

                                      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

                                      Ben1983B 1 Antwort Letzte Antwort
                                      0
                                      • Ben1983B Ben1983

                                        @ticaki Also wenn ich in einem Testscript das array direkt rein schreibe, dann gibt es genau den Fehler,
                                        schreibe ich es mit JSON.stringify rein dann funktioniert das auslesen und parsen

                                        CodierknechtC Online
                                        CodierknechtC Online
                                        Codierknecht
                                        Developer Most Active
                                        schrieb am zuletzt editiert von
                                        #19

                                        @ben1983
                                        Ich kann im Objektbaum rumeditieren oder einfach per setState('...', '["blubb"]') reinschreiben. Funktioniert problemlos.

                                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                        HmIP|ZigBee|Tasmota|Unifi
                                        Zabbix Certified Specialist
                                        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                        Ben1983B 1 Antwort Letzte Antwort
                                        0
                                        • CodierknechtC Codierknecht

                                          @ben1983
                                          Ich kann im Objektbaum rumeditieren oder einfach per setState('...', '["blubb"]') reinschreiben. Funktioniert problemlos.

                                          Ben1983B Offline
                                          Ben1983B Offline
                                          Ben1983
                                          schrieb am zuletzt editiert von Ben1983
                                          #20

                                          @codierknecht
                                          Ja reinschreiben oder rumeditieren geht ja auch, aber wenn man mit
                                          setState(id,array); rein schreibt, kann man es später nicht mehr parsen beim lesen,
                                          dazu sollte es mit
                                          setState(id,JSON.stringify(array)); rein geschrieben werden.

                                          Habe den Wert noch wo ander gefunden, wie von @ticaki erwähnt.
                                          ich trenne ihn mit split.
                                          Nicht der Ursprung des Problems, aber naja.

                                          CodierknechtC T haus-automatisierungH 3 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          824

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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