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. Entwicklung
  4. Object/Array Datentyp zu string?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Object/Array Datentyp zu string?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
18 Beiträge 3 Kommentatoren 1.6k 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.
  • paul53P paul53

    @holomekc sagte: nun auf einmal ein String in der Hand halten. Dadurch ist dann die Logik solange unbrauchbar, bis sie selber ein JSON.parse eingebaut haben?

    Nein, das macht der Javascript-Adapter ab Version 5.2.x in beide Richtungen automatisch, wenn der Datenpunktyp "object" oder "array" ist.

    Issue gibt es bereits zum Adapter BSHB.

    H Offline
    H Offline
    holomekc
    schrieb am zuletzt editiert von
    #3

    @paul53
    Hi das mit dem issue weiß ich 😀. Ok dann scheint es der node-red Adapter aber noch nicht zu tun, da erhalte ich einen String. Ich schaue nachher nochmal, ob es dafür dann eine Einstellung gibt, oder das dort dann fehlt, oder ob ich da schlecht geschaut habe.

    mickymM 1 Antwort Letzte Antwort
    0
    • H holomekc

      @paul53
      Hi das mit dem issue weiß ich 😀. Ok dann scheint es der node-red Adapter aber noch nicht zu tun, da erhalte ich einen String. Ich schaue nachher nochmal, ob es dafür dann eine Einstellung gibt, oder das dort dann fehlt, oder ob ich da schlecht geschaut habe.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #4

      @holomekc Beim NodeRed Adapter musst Du wie bisher alles selbst beschreiben, da ist nichts automatisch. So wie ich @paul53 verstanden habe, ist es bei anderen Adapter Aufgabe des Adapterentwicklers darauf zu achten, dass keine Objekte direkt geschrieben werden, bei NodeRed schreibst Du aber diese Werte selbst, also bist Du auch selbst verantwortlich. Im Gegenteil würde ich mir das verbieten, wenn hier der Adapter selbstständig in meinen Datentypen rumpfuscht. Ich finde es schon schlimm genug, wenn man die automatische Stringkonvertierung defaultmässig immer ausschalten muss.

      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.

      H 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @holomekc Beim NodeRed Adapter musst Du wie bisher alles selbst beschreiben, da ist nichts automatisch. So wie ich @paul53 verstanden habe, ist es bei anderen Adapter Aufgabe des Adapterentwicklers darauf zu achten, dass keine Objekte direkt geschrieben werden, bei NodeRed schreibst Du aber diese Werte selbst, also bist Du auch selbst verantwortlich. Im Gegenteil würde ich mir das verbieten, wenn hier der Adapter selbstständig in meinen Datentypen rumpfuscht. Ich finde es schon schlimm genug, wenn man die automatische Stringkonvertierung defaultmässig immer ausschalten muss.

        H Offline
        H Offline
        holomekc
        schrieb am zuletzt editiert von holomekc
        #5

        @mickym
        Bei NodeRed meine ich aber auch eher

        iobroker.bshb schreibt „{\“test\“: 123}“ weil JSON.stringify

        Aber nodered ließt dann halt auch einen String. Obwohl object/array als Typ definiert ist. Da ist dann die Einstellung „iobroker-Werte in Zeichenkette konvertieren“ deaktivieren ohne Funktion für object/array. Für zahlen, boolean funktioniert es weiterhin.

        Edit: Vielleicht noch deutlicher. Natürlich wie @mickym erwähnte mit deaktivierter Einstellung für Stringkonvertierung.

        Vorher:
        iobroker.bshb schreibt: {“test“: 123}
        iobroker.node-red ließt: {“test“: 123}

        Jetzt:
        iobroker.bshb schreibt: „{\“test\“: 123}“, da object & array serialisiert werden sollen
        iobroker.node-red ließt: „{\“test\“: 123}“

        Das finde ich für einen Benutzer verwirrend und das ist die Stelle wo ich meine das Logiken auf die Nase fallen, da der Benutzer dann erst ein JSON.parse selber einbauen muss.

        Aber wenn das so gewollt ist, ist das für mich auch ok.

        mickymM 1 Antwort Letzte Antwort
        0
        • H holomekc

          @mickym
          Bei NodeRed meine ich aber auch eher

          iobroker.bshb schreibt „{\“test\“: 123}“ weil JSON.stringify

          Aber nodered ließt dann halt auch einen String. Obwohl object/array als Typ definiert ist. Da ist dann die Einstellung „iobroker-Werte in Zeichenkette konvertieren“ deaktivieren ohne Funktion für object/array. Für zahlen, boolean funktioniert es weiterhin.

          Edit: Vielleicht noch deutlicher. Natürlich wie @mickym erwähnte mit deaktivierter Einstellung für Stringkonvertierung.

          Vorher:
          iobroker.bshb schreibt: {“test“: 123}
          iobroker.node-red ließt: {“test“: 123}

          Jetzt:
          iobroker.bshb schreibt: „{\“test\“: 123}“, da object & array serialisiert werden sollen
          iobroker.node-red ließt: „{\“test\“: 123}“

          Das finde ich für einen Benutzer verwirrend und das ist die Stelle wo ich meine das Logiken auf die Nase fallen, da der Benutzer dann erst ein JSON.parse selber einbauen muss.

          Aber wenn das so gewollt ist, ist das für mich auch ok.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #6

          @holomekc Das ist aber ein Problem vom dem bshb Adapter. Normal - so habe ich @paul53 verstanden, muss jedes Objekt vom Adapter als JSON-String abgespeichert werden und darf deshalb die Anführungszeichen der Objekteigenschaft nicht escapen - sprich das Ding muss immer als „{“test“: 123}“ geschrieben werden.

          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.

          H 2 Antworten Letzte Antwort
          0
          • mickymM mickym

            @holomekc Das ist aber ein Problem vom dem bshb Adapter. Normal - so habe ich @paul53 verstanden, muss jedes Objekt vom Adapter als JSON-String abgespeichert werden und darf deshalb die Anführungszeichen der Objekteigenschaft nicht escapen - sprich das Ding muss immer als „{“test“: 123}“ geschrieben werden.

            H Offline
            H Offline
            holomekc
            schrieb am zuletzt editiert von
            #7

            @mickym
            Siehe edit vom post darüber. Genau das will ich ja ändern. Will nur wissen das diese Verhalten wirklich so gewünscht ist.

            mickymM paul53P 2 Antworten Letzte Antwort
            0
            • H holomekc

              @mickym
              Siehe edit vom post darüber. Genau das will ich ja ändern. Will nur wissen das diese Verhalten wirklich so gewünscht ist.

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von
              #8

              @holomekc Na wie gesagt, ich kann das mit dem Escapen der Anführungszeichen nicht glauben, dann würde auch die JSON Nodes nicht mehr funktionieren - oder Du hast Recht der Node Red Adapter bzw. die iobroker IN müssten in diesem Fall beim Lesen gleich Objekte liefern. OK - hab es verstanden.

              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 Antwort Letzte Antwort
              0
              • mickymM mickym

                @holomekc Das ist aber ein Problem vom dem bshb Adapter. Normal - so habe ich @paul53 verstanden, muss jedes Objekt vom Adapter als JSON-String abgespeichert werden und darf deshalb die Anführungszeichen der Objekteigenschaft nicht escapen - sprich das Ding muss immer als „{“test“: 123}“ geschrieben werden.

                H Offline
                H Offline
                holomekc
                schrieb am zuletzt editiert von holomekc
                #9

                @mickym
                Ehm nicht escapen? "{"test": 123}" ist kein valider String, sondern ein Fehler:
                a901419d-cd50-481c-8296-884b9fee9581-image.png

                Edit:
                e359db11-da04-4fb8-acfc-7688cf48c063-image.png

                paul53P mickymM 2 Antworten Letzte Antwort
                0
                • H holomekc

                  @mickym
                  Siehe edit vom post darüber. Genau das will ich ja ändern. Will nur wissen das diese Verhalten wirklich so gewünscht ist.

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

                  @mickym sagte: muss jedes Objekt vom Adapter als JSON-String abgespeichert werden

                  So ist es. Objekte müssen vom Adapter mit JSON.stringify(obj) in den Datenpunkt geschrieben werden.

                  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
                  • H holomekc

                    @mickym
                    Ehm nicht escapen? "{"test": 123}" ist kein valider String, sondern ein Fehler:
                    a901419d-cd50-481c-8296-884b9fee9581-image.png

                    Edit:
                    e359db11-da04-4fb8-acfc-7688cf48c063-image.png

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

                    @holomekc sagte: "{"test": 123}" ist kein valider String, sondern ein Fehler

                    Ja, aber nicht

                    '{"test": 123}'
                    

                    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

                    H 1 Antwort Letzte Antwort
                    0
                    • H holomekc

                      @mickym
                      Ehm nicht escapen? "{"test": 123}" ist kein valider String, sondern ein Fehler:
                      a901419d-cd50-481c-8296-884b9fee9581-image.png

                      Edit:
                      e359db11-da04-4fb8-acfc-7688cf48c063-image.png

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #12

                      @holomekc Wollte ich gerade sagen: Eigenschaften von Objekten gehören nicht in Anführungszeichen:

                      4b8b6601-767d-404b-805a-cb7f67f013ee-image.png

                      gibt keine Probleme.

                      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.

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @holomekc sagte: "{"test": 123}" ist kein valider String, sondern ein Fehler

                        Ja, aber nicht

                        '{"test": 123}'
                        
                        H Offline
                        H Offline
                        holomekc
                        schrieb am zuletzt editiert von
                        #13

                        @paul53
                        Das ist das gleiche in Pink:
                        c5cff908-6d5b-43b3-8b96-b9042dd02fa0-image.png

                        H 1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

                          @holomekc Wollte ich gerade sagen: Eigenschaften von Objekten gehören nicht in Anführungszeichen:

                          4b8b6601-767d-404b-805a-cb7f67f013ee-image.png

                          gibt keine Probleme.

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

                          @mickym sagte: Eigenschaften von Objekten gehören nicht in Anführungszeichen:

                          Es sind auch Anführungszeichen zulässig.

                          Bild_2021-08-26_132651.png

                          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 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @mickym sagte: Eigenschaften von Objekten gehören nicht in Anführungszeichen:

                            Es sind auch Anführungszeichen zulässig.

                            Bild_2021-08-26_132651.png

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von mickym
                            #15

                            @paul53 Aber mit dem gleichen Ergebnis:

                            40b5ca8a-0bde-418b-b71c-941f1632c70e-image.png

                            Sprich wenn ich partout Anführungszeichen in einer Eigenschaft mitgeben will - müsste es heißen:

                            5f16371b-37d7-4fd0-bd42-6cc5126b259f-image.png

                            und dann sieht man ist das Ergebnis wie unten:

                            {"\"test\"":123}
                            

                            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 Antwort Letzte Antwort
                            0
                            • H holomekc

                              @paul53
                              Das ist das gleiche in Pink:
                              c5cff908-6d5b-43b3-8b96-b9042dd02fa0-image.png

                              H Offline
                              H Offline
                              holomekc
                              schrieb am zuletzt editiert von
                              #16

                              @holomekc
                              ok ok noch einmal nur das technische:

                              const test = {test:123};
                              const result = JSON.stringify(test);

                              result war immer und bleibt immer "{"test":123}", denn wenn das nicht so wäre, dann würde gar nix mehr funktionieren. Das Javascript bei der Notation sehr entgegenkommend ist liegt einfach an der Sprache. Dennoch muss der Text unter der Haube escaped sein, denn das Programm leißt von " zu " und dazwischen ist Text.
                              009b2e7f-ba85-4b91-a47d-50b859c6e55e-image.png

                              Das eine Console die escapten Zeichen interpretieren kann ist wieder ein ganz anderes Thema.
                              25fb2b85-d83a-4ba0-9944-c5903eb6392e-image.png

                              Aber ehrlich gesagt ging es mir auch nicht um das Thema wie Strings funktionieren, sondern um halt das Thema was mir @mickym im Prinzip mit seiner Antwort schon gegeben hat.

                              Also für mich heißt das ich passe das in iobroker.bshb an, wie es mit der neuen js-controller version gewünscht ist. Dann wird entweder noch node-red angepasst oder aber die Nutzer müssen es halt dann selber anpassen.

                              Danke für die ganzen Infos! Wäre dennoch schön einen Übersichtsseite solcher Änderungen zu sehen, falls es das gibt. Wurde bisher nicht fündig.

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • H holomekc

                                @holomekc
                                ok ok noch einmal nur das technische:

                                const test = {test:123};
                                const result = JSON.stringify(test);

                                result war immer und bleibt immer "{"test":123}", denn wenn das nicht so wäre, dann würde gar nix mehr funktionieren. Das Javascript bei der Notation sehr entgegenkommend ist liegt einfach an der Sprache. Dennoch muss der Text unter der Haube escaped sein, denn das Programm leißt von " zu " und dazwischen ist Text.
                                009b2e7f-ba85-4b91-a47d-50b859c6e55e-image.png

                                Das eine Console die escapten Zeichen interpretieren kann ist wieder ein ganz anderes Thema.
                                25fb2b85-d83a-4ba0-9944-c5903eb6392e-image.png

                                Aber ehrlich gesagt ging es mir auch nicht um das Thema wie Strings funktionieren, sondern um halt das Thema was mir @mickym im Prinzip mit seiner Antwort schon gegeben hat.

                                Also für mich heißt das ich passe das in iobroker.bshb an, wie es mit der neuen js-controller version gewünscht ist. Dann wird entweder noch node-red angepasst oder aber die Nutzer müssen es halt dann selber anpassen.

                                Danke für die ganzen Infos! Wäre dennoch schön einen Übersichtsseite solcher Änderungen zu sehen, falls es das gibt. Wurde bisher nicht fündig.

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

                                @holomekc sagte: Wäre dennoch schön einen Übersichtsseite solcher Änderungen zu sehen, falls es das gibt.

                                Changelog

                                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

                                H 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @holomekc sagte: Wäre dennoch schön einen Übersichtsseite solcher Änderungen zu sehen, falls es das gibt.

                                  Changelog

                                  H Offline
                                  H Offline
                                  holomekc
                                  schrieb am zuletzt editiert von
                                  #18

                                  @paul53
                                  Dankeschön!

                                  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

                                  556

                                  Online

                                  32.7k

                                  Benutzer

                                  82.4k

                                  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