NEWS
[gelöst] Json mit Sub-Arrays unbekannter Anzahl zerlegen
-
Hallo,
ich versuche einen JSON mit Sub-Arrays wieder einzulesen.
Der JSON wird einmal täglich mit Energiedaten meiner Balkon-Solar gespeichert
und sieht so aus:{ "zaehlerstand": 1000, "total_act_power": 500, "total_aprt_power": 300, "delta-2-max-offline": { "0": "12:04", "1": "13:45", "2": "16:35", } }Immer wenn meine Anlage mal wieder offline geht, möchte ich das Loggen.
Daher sind unter delta-2-max-offline eine variable Anzahl von Daten oder auch keine.Wie kann ich diesen JSON aber wieder lesen ohne zu wissen, wie viele Sub-Daten 0,1...x enthalten sind?
So komme ich an die Daten heran, habe als Test aber fest den Wert von 0 abgefragt.
let obj = JSON.parse(getState(id).val); Object.keys(obj).forEach(function(item) { // id=Datenpunkt, item=Bezeichner (key) obj[item]=Value if (item == 'delta-2-max-offline') { log(id); log(item); log(obj[item][0]); } });Leider weiß ich aber nicht, ob und wie viele Werte vorhanden sind (in meinem Beispiel oben 0,1,2.
Schön wäre auch wenn ich die if-Abfrage auch weglassen könnte.
Ein allgemein funktionierendes Code-Schnipsel für verschachtelte JSON`s wäre toll,
habe ich aber trotz intensivem Suchen nicht gefunden (oder eher nach den falschen Schlüsselworten gesucht).Vielen Dank
-
let obj = JSON.parse(getState(id).val); Object.keys(obj).forEach(function(item) { // id=Datenpunkt, item=Bezeichner (key) obj[item]=Value log(item) if (typeof obj[item] == 'object') { let value = obj[item] let count = Object.keys(value).length; log(count) for(let key in value){ log(key) log(value[key]) } } }); -
Hallo,
ich versuche einen JSON mit Sub-Arrays wieder einzulesen.
Der JSON wird einmal täglich mit Energiedaten meiner Balkon-Solar gespeichert
und sieht so aus:{ "zaehlerstand": 1000, "total_act_power": 500, "total_aprt_power": 300, "delta-2-max-offline": { "0": "12:04", "1": "13:45", "2": "16:35", } }Immer wenn meine Anlage mal wieder offline geht, möchte ich das Loggen.
Daher sind unter delta-2-max-offline eine variable Anzahl von Daten oder auch keine.Wie kann ich diesen JSON aber wieder lesen ohne zu wissen, wie viele Sub-Daten 0,1...x enthalten sind?
So komme ich an die Daten heran, habe als Test aber fest den Wert von 0 abgefragt.
let obj = JSON.parse(getState(id).val); Object.keys(obj).forEach(function(item) { // id=Datenpunkt, item=Bezeichner (key) obj[item]=Value if (item == 'delta-2-max-offline') { log(id); log(item); log(obj[item][0]); } });Leider weiß ich aber nicht, ob und wie viele Werte vorhanden sind (in meinem Beispiel oben 0,1,2.
Schön wäre auch wenn ich die if-Abfrage auch weglassen könnte.
Ein allgemein funktionierendes Code-Schnipsel für verschachtelte JSON`s wäre toll,
habe ich aber trotz intensivem Suchen nicht gefunden (oder eher nach den falschen Schlüsselworten gesucht).Vielen Dank
Damit bekommst du die Länge des arrays heraus.
Ansonsten so wie man eine Schleife darüber laufen lassenlog(obj[item].length); log(obj.item.length);Alternativ hier die ganzen Funktionen was man mit arrays noch machen kann
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array -
Damit bekommst du die Länge des arrays heraus.
Ansonsten so wie man eine Schleife darüber laufen lassenlog(obj[item].length); log(obj.item.length);Alternativ hier die ganzen Funktionen was man mit arrays noch machen kann
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array