Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Object/Array Datentyp zu string?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Object/Array Datentyp zu string?

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      holomekc @mickym last edited by 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.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @holomekc last edited by 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 2 Replies Last reply Reply Quote 0
        • H
          holomekc @mickym last edited by

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

          mickym paul53 2 Replies Last reply Reply Quote 0
          • mickym
            mickym Most Active @holomekc last edited by

            @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.

            1 Reply Last reply Reply Quote 0
            • H
              holomekc @mickym last edited by 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

              paul53 mickym 2 Replies Last reply Reply Quote 0
              • paul53
                paul53 @holomekc last edited by paul53

                @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.

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @holomekc last edited by

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

                  Ja, aber nicht

                  '{"test": 123}'
                  
                  H 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @holomekc last edited by 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.

                    paul53 1 Reply Last reply Reply Quote 0
                    • H
                      holomekc @paul53 last edited by

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

                      H 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @mickym last edited by

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

                        Es sind auch Anführungszeichen zulässig.

                        Bild_2021-08-26_132651.png

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

                          @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}
                          
                          1 Reply Last reply Reply Quote 0
                          • H
                            holomekc @holomekc last edited by

                            @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.

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @holomekc last edited by

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

                              Changelog

                              H 1 Reply Last reply Reply Quote 0
                              • H
                                holomekc @paul53 last edited by

                                @paul53
                                Dankeschön!

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                667
                                Online

                                31.7k
                                Users

                                79.8k
                                Topics

                                1.3m
                                Posts

                                3
                                18
                                1038
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo