Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JSON Wert mit Blockly schreiben

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    JSON Wert mit Blockly schreiben

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @Lucky_ESA last edited by

      @lucky_esa sagte: Wie man die Function und die Variablen benennt ist jedem selber überlassen.

      Ja, aber mit der Bezeichnung Array werden gerade Anfänger auf eine falsche Fährte geführt.

      L 1 Reply Last reply Reply Quote 0
      • L
        Lucky_ESA Developer Most Active @paul53 last edited by

        @paul53 sagte in JSON Wert mit Blockly schreiben:

        Ja, aber mit der Bezeichnung Array werden gerade Anfänger auf eine falsche Fährte geführt.

        Auch das ist Ansichtssache. Einem Anfäger mit einem Bild zu zeigen wie man ein Attribut hinzufügt statt zu ändern kann auch verwirren 😁

        Gruß//Lucky

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

          @lucky_esa sagte: Bild zu zeigen wie man ein Attribut hinzufügt statt zu ändern

          Habe das Bild geändert.

          1 Reply Last reply Reply Quote 1
          • J
            jr28 @paul53 last edited by

            @paul53

            da ich mir sicher sein wollte alles richtig zu machen habe ich folgendes gemacht:

            fab2bff5-0fc8-4d21-95e5-026acefb6b4b-image.png

            Wieso schlägt der Vergleich fehl?
            Ich will absolut sicher sein bevor ich in den Tiefen meines Tesla was schreibe.

            paul53 1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @Lucky_ESA last edited by

              @lucky_esa sagte in JSON Wert mit Blockly schreiben:

              Wie man die Function und die Variablen benennt ist jedem selber überlassen

              Klar, aber Code wird zum allergrößten Teil gelesen. Alte Weisheit: "Jeder Code muss irgendwann gewartet werden".
              Dann sitzt man davor und denkt sich "welcher Horst hat das denn verbrochen?" ... um dann nach mehr oder langem Sinnieren festzustellen ... "Upps, ist ja mein Code" 😁

              Choose descriptive and unambiguous names
              "Clean Code" (Robert C. Martin)

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

                Blockly, Objekte und JSON einfach nur grauslig. 😬

                Verstehe nicht warum man Eigenschaften von Objekten lesen kann

                fc9e3c08-4664-4d1e-9cd4-54f2d64ce150-image.png

                JSONs in Objekte und umgekehrt wandeln kann.

                b92c7205-5966-49d5-985d-627bf6587d03-image.png

                aber man nicht in der Lage ist Attribute in einem Objekt zu beschreiben. Einfach schlimm. 😉

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

                  @jr28 sagte: Wieso schlägt der Vergleich fehl?

                  So ein String-Vergleich ist problematisch, da schon ein Leerzeichen mehr oder weniger oder ein unsichtbares Sonderzeichen zu einem negativen Ergebnis führen. Dabei spielen Leerzeichen im JSON keine Rolle.
                  Deshalb mache mal - nur für den Vergleich - eine doppelte Konvertierung JSON --> Objekt --> JSON.

                  Bild_2022-11-17_225450634.png

                  1 Reply Last reply Reply Quote 0
                  • K
                    kalle-r last edited by

                    hmmm.... bei mir klappt das irgendwie nicht:

                    hab einen Datenpunkt "test" vom Typ JSON

                    [
                      {
                        "Art": "A1",
                        "Tag": "A2"
                      },
                      {
                        "Art": "B1",
                        "Tag": "B2"
                      },
                      {
                        "Art": "C1",
                        "Tag": "C2"
                      }
                    ]
                    

                    Blockly von oben:

                    1.jpg

                    Result:

                    2.jpg

                    hat jemand eine Idee wo das hängt?

                    DJMarc75 paul53 2 Replies Last reply Reply Quote 0
                    • DJMarc75
                      DJMarc75 @kalle-r last edited by

                      @kalle-r Warum sollte das auch funktionieren ?! Wo bitte gibt es in Deinem Json das Attribute "1.Tag" ?

                      K 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @kalle-r last edited by

                        @kalle-r sagte: klappt das irgendwie nicht

                        Wie soll man das beurteilen, wenn der Inhalt der JS-Funktion verschwiegen wird?

                        K 1 Reply Last reply Reply Quote 0
                        • K
                          kalle-r @DJMarc75 last edited by

                          @djmarc75
                          sorry, bin nur so ein halbwissender 😎
                          also nach meinem bisherigen Ermittlungen kann ich mit
                          0.xxx
                          1.xxx
                          2.xxx
                          auf die jeweiligen Einträge zugreifen.
                          0.Tag liefert A2
                          1.Tag liefert B2
                          2.Tag liefert C2
                          1.Art liefert entsprechend B1
                          das funktioniert so weit.
                          Ich möchte jetzt z.B. aus B2 einen anderen Text machen und habe gehofft daß das mit dem Skript
                          von weiter oben klappt....

                          1 Reply Last reply Reply Quote 0
                          • K
                            kalle-r @paul53 last edited by

                            @paul53
                            ja Du hast Recht, hier der Inhalt:

                            3.jpg

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @kalle-r last edited by paul53

                              @kalle-r sagte: hier der Inhalt

                              Versuche es mal mit dieser JS-Funktion (ohne Ergebnis, denn ein Array wird ohnehin per Referenz übergeben):

                              att = att.split('.');
                              arr[att[0]][att[1]] = value;
                              

                              Bild_2022-12-08_180119672.png

                              K 1 Reply Last reply Reply Quote 0
                              • K
                                kalle-r @paul53 last edited by

                                @paul53
                                das schaut gut aus 👍
                                kannst Du mir erklären warum das in Deinem Beispiel weiter oben mit dem original-Skript funktioniert hat
                                und in meinem Beispiel nicht?
                                ich will ja schliesslich was dazu lernen 😉

                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @kalle-r last edited by paul53

                                  @kalle-r sagte: warum das in Deinem Beispiel weiter oben mit dem original-Skript funktioniert hat

                                  Im Original wird das Attribut eines Objektes geändert und nicht das Attribut eines Objektes in einem Array von Objekten.

                                  Anmerkung: Den Zugriff auf ein Array-Element per Punkt-Notation kennt Javascript nicht. Das kann nur die speziell für Blockly entwickelte Funktion getAttr().

                                  K 1 Reply Last reply Reply Quote 0
                                  • K
                                    kalle-r @paul53 last edited by

                                    @paul53
                                    jetzt ist's klar, danke!
                                    Noch eine doofe? Frage:
                                    wie kommt man zu dem Funktionsaufruf den ich ohne debug verwenden kann?

                                    Screenshot 2022-12-08 200316.jpg

                                    ich hab nur den den ich nach links andocken muss

                                    Screenshot 2022-12-08 200358.jpg

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @kalle-r last edited by paul53

                                      @kalle-r sagte: wie kommt man zu dem Funktionsaufruf den ich ohne debug verwenden kann?

                                      Javascript-Funktion (ohne Ergebnis).

                                      @paul53 sagte in JSON Wert mit Blockly schreiben:

                                      (ohne Ergebnis, denn ein Array wird ohnehin per Referenz übergeben)

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        kalle-r @paul53 last edited by

                                        @paul53
                                        und nochmal was gelernt, vielen Dank!!

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        449
                                        Online

                                        31.9k
                                        Users

                                        80.1k
                                        Topics

                                        1.3m
                                        Posts

                                        10
                                        41
                                        2579
                                        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