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. Zugriff auf Werte in einem json-objekt

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    192

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

Zugriff auf Werte in einem json-objekt

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 3 Kommentatoren 3.1k Aufrufe
  • Ä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.
  • E Offline
    E Offline
    ehome
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich habe mir ein Skript geschrieben, mit dem ich für jeden Counter eine

    Verbrauchsübersicht der letzen 12 Monate aus dem History Adapter ziehen kann. (Zur Vereinfachung habe ich der Tabelle ts_number noch ein date Feld spendiert).

    Das funktioniert so weit auch ganz gut. Allerdings möchte ich eine Gesamttabelle für eine Übersicht erstellen und entsprechnde Graiken mit Google Charts erstellen. Leider kann ich nicht auf die einzelenen Werte des Arrays zugreifen.

    Für eine Test habe ich ein Skript erstellt, welches mir die letzten 12 Monate ausgibt. Für jeden Monat möchte ich dann den Wert aus dem entsprechenenden json Objekt auslesen das ich vorher in ein Array schiebe.

    Beispiel für das json Objekt:

     [{"Monat":"2017-11","Verbrauch":60},{"Monat":"2017-10","Verbrauch":235},{"Monat":"2017-9","Verbrauch":341}]
    
    

    Zugriff auf einen Wert des json Objekts:

    var werte=JSON.parse(json);
    var verbrauchszeitraum='2017-10';
    var verbrauch=werte.Monat.verbrauchszeitraum <-??????
    
    

    Ich verstehe einfach nicht, wie ich nun für den Verbrauchszeitraum den Wert (im Beispiel 235) auslesen kann :( .

    Hat vielleicht jemand von den Java-Skript-Göttern eine Erklärung :D ???

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Versuche es mal so:

      `var werte=JSON.parse(json);
      var verbrauchszeitraum='2017-10';
      var verbrauch;
      
      for(var i = 0; i < werte.length; i++) {
          if(werte[i].Monat == verbrauchszeitraum) verbrauch = werte[i].Verbrauch;
      }`[/i][/i]
      

      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
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        …oder besser so:

        `var werte=JSON.parse(json);
        var verbrauchszeitraum='2017-10';
        var verbrauch;
        
        for(var i = 0; i < werte.length; i++) {
            if(werte[i].Monat == verbrauchszeitraum) {
               verbrauch = werte[i].Verbrauch;
               break;
            }   
        }`[/i][/i]
        

        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
        • E Offline
          E Offline
          ehome
          schrieb am zuletzt editiert von
          #4

          danke paul53 - so geht es.

          1 Antwort Letzte Antwort
          0
          • AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            schrieb am zuletzt editiert von
            #5

            Noch eine Variante im funktionalen Stil:

            var werte=JSON.parse(json);
            var verbrauchszeitraum='2017-10';
            var wert = werte.find(w => w.Monat === verbrauchszeitraum);
            var verbrauch = wert ? wert.Verbrauch : null;
            

            Die find-Funktion liefert den ersten Eintrag eines Array, der die Bedingung erfüllt, bzw. bei der die übergebene Funktion wahr zurückgibt. Oder undefined, wenn der Eintrag nicht gefunden wurde.

            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

            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

            796

            Online

            32.5k

            Benutzer

            81.7k

            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