Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. JSON - mal wieder

    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 - mal wieder

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      Gukerl last edited by

      Grüß Euch!

      In einem Datenpunkt steht folgender JSON String:

      script.js.Zeug.MeteoAlarm: [{"Event":"Windwarnung","Description":"Starker Wind mit Spitzen von 60 bis 80 km/h ist zu erwarten.","Level":2,"Effective":"Mo. 00:00 - Di. 00:00","Icon":"/meteoalarm.admin/icons/black/t1.png","AlarmType":"Wind"}]
      

      Ich möchte zB das Event auslesen:
      JSON.JPG

      Ich hab schon viele Variationen probiert, nichts klappt. Und ja, ich hab im Forum gesucht und gegoogelt.

      Ein anders Beispiel, auch hier wird nichts ausgegeben. Hat jemand einen Tipp? Im schlimmsten Fall hole ich mir die Werte über Stringsearch.
      Danke Euch, Andi 🙂

      const jsonString = '{ "id": 100, "tC": "18", "tF": 65.3 }';
      
      // Parse the JSON string
      const jsonData = JSON.parse(jsonString);
      
      // Extract the value of tC
      let temperatureCelsius = jsonData.tC;
      
      // Check if tC is a string and convert it to a number
      if (typeof temperatureCelsius === "string") {
          const parsedValue = parseFloat(temperatureCelsius);
          if (!isNaN(parsedValue)) {
              temperatureCelsius = parsedValue;
          } else {
              console.error("Invalid temperature value in tC");
          }
      }
      console.log("Temperature in Celsius:", temperatureCelsius);
      
      Homoran Codierknecht 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Gukerl last edited by Homoran

        @gukerl wieso 1.Event?

        Screenshot_20250207-091141_Firefox.jpg

        0.Event müsste passen

        steht die Einleitung vor der öffnenden eckigen Klammer tatsächlich im DP?
        das darf nicht

        G 1 Reply Last reply Reply Quote 1
        • G
          Gukerl @Homoran last edited by

          @homoran
          So ist es im Adapter drinnen:

          [
            {
              "Event": "Windwarnung",
              "Description": "Starker Wind mit Spitzen von 60 bis 80 km/h ist zu erwarten.",
              "Level": 2,
              "Effective": "Mo. 00:00 - Di. 00:00",
              "Icon": "/meteoalarm.admin/icons/black/t1.png",
              "AlarmType": "Wind"
            }
          ]
          

          Es klappt garnichts:
          Für mich ist eigentlich das Beispiel wichtig:
          Vom Shelly bekomme ich diesen JSON im Datenpunkt:

          {
            "id": 101,
            "tC": 16.7,
            "tF": 62
          }
          

          Auch hier keine Chance (im Startpost das JS). Ich hab Variationen probiert. Debug zeigt garnichts an.
          JSONShelly.JPG

          Entweder passt mit meinem Adapter was nicht oder...? Keine Ahnung.

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Gukerl last edited by Homoran

            @gukerl mangels Adapter-DP eine Variable mit dem I halt:
            Screenshot_20250207-095412_Firefox.jpg

            und
            Screenshot_20250207-095633_Firefox.jpg

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

              @gukerl sagte in JSON - mal wieder:

              Ich hab schon viele Variationen probiert, nichts klappt

              Du hast die "richtige" Variante vergessen: Indizes in JSON-Arrays beginnen bei 0.

              Wie @Homoran schon schrieb: Das funzt einwandfrei:

              e3458b79-e0f7-4f87-afdb-185479549eb0-image.png

              Vom Shelly bekomme ich diesen JSON im Datenpunkt:

              Das wiederum ist kein Array. Also wird ohne Index gelesen:

              JSON.parse(val).tC
              

              Ich persönlich würde mir da passende Alias-DP anlegen und mit der Lesekonvertierung die Werte aus dem JSON holen.

              8922e98b-e2da-4f85-aa3f-7f6873287214-image.png

              Homoran 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Codierknecht last edited by

                @codierknecht sagte in JSON - mal wieder:

                Ich persönlich würde mir da passende Alias-DP anlegen und mit der Lesekonvertierung die Werte aus dem JSON holen.

                rischtisch, aber hier geht's um Blockly.

                Oftmals sind solche Dinge, die auch anders lösbar sind, dazu da um sich mit Blockly vertraut zu machen

                1 Reply Last reply Reply Quote 1
                • Codierknecht
                  Codierknecht Developer Most Active last edited by Codierknecht

                  @Gukerl
                  Zum Ausprobieren hilft das hier: https://jsonpathfinder.com/

                  Der sagt Dir auch gleich, wie einzelne Elemente anzusprechen sind.

                  ba8232ea-d3d1-431d-bd38-5d7ac01e73da-image.png

                  1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @Codierknecht last edited by

                    @codierknecht sagte in JSON - mal wieder:

                    Das wiederum ist kein Array. Also wir ohne Index gelesen:

                    Editör!

                    Deswegen hatte ich die Seite von jsonviewer.stack.hu gezeigt auf der man schön die Struktur sehen kann.

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

                      @homoran sagte in JSON - mal wieder:

                      Editör!

                      Sorry 😯

                      Macht der jsonpathfinder auch. Netterweise zeigt der auch gleich (fast) die richtige Syntax für den Zugriff 😉

                      Jeder hat da halt so seine Vorlieben 🙂

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        Gukerl @Codierknecht last edited by

                        Ich hab jetzt ChatGPT befragt, wie denn die KI das auflöst, so stehts im Datenpunkt:

                        {
                          "id": 100,
                          "tC": 17.1,
                          "tF": 62.8
                        }
                        

                        Klappt nicht, der https://jsonviewer.stack.hu/ zeigt keinen Index.

                        const jsonString = '{ "id": 100, "tC": 18.5, "tF": 65.3 }';
                        
                        // Parse the JSON string
                        const jsonData = JSON.parse(jsonString);
                        
                        // Extract the value of tC
                        const temperatureCelsius = jsonData.tC;
                        
                        console.log("Temperature in Celsius:", temperatureCelsius);
                        

                        Ich gebe auf 😕 und frag mich, wofür das ganze JSON Zeig im Blockly denn dann gut sein soll. Nachdem es aber mit JS auch nicht geht...?!?

                        Codierknecht Homoran 4 Replies Last reply Reply Quote 1
                        • Codierknecht
                          Codierknecht Developer Most Active @Gukerl last edited by Codierknecht

                          @gukerl sagte in JSON - mal wieder:

                          zeigt keinen Index

                          Warum auch? Ist ja kein Array.
                          Über einen Index greifst Du auf ein Array mit Objekten zu.

                          Beachte den Unterschied:

                          const jsonString = '{"id": 100, "tC": 18.5, "tF": 65.3}';
                          const jsonArray = '[{"id": 100, "tC": 18.5, "tF": 65.3}, {"id": 101, "tC": 18.9, "tF": 61.2}]';
                          

                          In jsonString steckt ein einzelnes Objekt. Auf dessen Properties kannst Du direkt zugreifen.
                          Das jsonArray ist eine Liste von Objekten. Da muss über den Index angegeben werden, das wievielte Objekt in der Liste gemeint ist.
                          Beachte: Der Index beginnt bei "0"!

                          Edit
                          Ein Array erkennst Du daran, dass "außenrum" eckige Klammern zu finden sind.
                          Wie viele Elemente (Objekte) dann in der Liste stehen, ist egal. Der Zugriff benötigt einen Index - auch bei nur einem einzigen Objekt.

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

                            @gukerl sagte in JSON - mal wieder:

                            Nachdem es aber mit JS auch nicht geht...?!?

                            Der Code funktioniert einwandfrei ... wenn man den Fehler an entscheidender Stelle korrigiert:

                            1616ccb1-1365-447e-b277-275a897ddcf1-image.png

                            G 1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @Gukerl last edited by

                              @gukerl sagte in JSON - mal wieder:

                              Ich gebe auf und frag mich, wofür das ganze JSON Zeig im Blockly denn dann gut sein soll

                              Aufgeben ist keine Option 😁

                              c1ae837f-819a-4a72-b6f5-9b42be60e4ed-image.png
                              Es gilt - wie immer: Kaum macht man's richtig, funktioniert's auch 😉 😀

                              1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @Gukerl last edited by

                                @gukerl sagte in JSON - mal wieder:

                                der https://jsonviewer.stack.hu/ zeigt keinen Index.

                                natürlich nicht!
                                ist hier auch nicht drin
                                Screenshot_20250207-095633_Firefox.jpg
                                nur das Attribut selber.

                                @gukerl sagte in JSON - mal wieder:

                                Ich hab jetzt ChatGPT befragt,

                                reichen dir unsere Aussagen und Beispiele nicht?

                                1 Reply Last reply Reply Quote 0
                                • G
                                  Gukerl @Codierknecht last edited by Gukerl

                                  @codierknecht
                                  Oidaaaaaaa.... ICH BIN WIRKLICH BLIND - Asche auf mein Haupt!! Das passiert, wenn man sich ganz woandershin konzentriert.

                                  Danke 🙂

                                  P.S. Was bedeutet Oidaaaaaa ---> https://www.youtube.com/watch?v=iuXR53ex4iI 😉

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

                                    @gukerl sagte in JSON - mal wieder:

                                    Was bedeutet Oidaaaaaa

                                    Ich bin des Ausländischen durchaus mächtig 😁 😁

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    918
                                    Online

                                    31.9k
                                    Users

                                    80.2k
                                    Topics

                                    1.3m
                                    Posts

                                    3
                                    16
                                    590
                                    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