NEWS
Zugriff auf Werte in einem json-objekt
-
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
???
-
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]
-
…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]
-
danke paul53 - so geht es.
-
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.