NEWS
[gelöst] Brauche hilfe json Array verschachtelung zu parsen
-
@homoran da fehlen alle Kommas. Die Attributauflistungen müssen alle mit Komma getrennt sein.
-
@homoran stimmt, mit dem richtigen json aus der api geht es im json-viewer...
Mein beispiel wird so auf deren homepage https://dev.netatmo.com/apidocumentation/energy#homesdata() angegeben, dachte es reicht um die struktur zu demonstrieren, die eigentliche json besteht aus vielen vertraulichen informationen...
Hättest du denn ein beispiel wie der pfad aussehen müsste? ich hab wie gesagt kaum ahnung davon und versuche wie: body.homes.name / body.homes[0].name oder einfach [0]name... keine ahnung hab wirklich alles getestet was mir eingefallen ist, der wert "name" ist normal hier zu finden:
{},{}body,[]homes,{}0,.name
ist das so verständlich?
wie muss der pfad für den "erhalte attribut" baustein aussehen? -
@newpicsel
Mein Vorschlag wäre: du kopierst das JSON,
öffnest den einen Browser (chrome,firefox oder den neuen Edge von MS)
öffnest darin dann die Developerkonsole (bei Chrome mit F12
gehst dann darin auf den Reiter Console
und kopierst das einfach in die Console und weist es einer Variable zu (im beispiel unten a) rein.
Danach zeigt es dir das erzeugte Objekt an und du kannst mit Hilfe slebst dich durch die Objektstruktur druchhangeln.
Hier mal ein Beispiel mit einem anderen JSON im Chrome Browser -
@newpicsel sagte in Brauche hilfe json Array verschachtelung zu parsen:
Wie komme ich zb an den wert „name“ im ersten homes array?
der pfad sollte
body.homes[0].name
sein -
@fastfoot said in Brauche hilfe json Array verschachtelung zu parsen:
der pfad sollte
body.homes[0].name
seinrichtig war auch meine vermutung bekomme aber immer "null" zurück obwohl in meinem fall "Home" im wert steht, und das mit jeden wert den ich abfrage außer den wert "status" innerhalb der ersten klammer noch vor {}body...
Hab auch versucht es mit json nach objekt zu konvertieren, ändert aber nichts. -
@newpicsel sagte in Brauche hilfe json Array verschachtelung zu parsen:
@fastfoot said in Brauche hilfe json Array verschachtelung zu parsen:
der pfad sollte
body.homes[0].name
seinrichtig war auch meine vermutung bekomme aber immer "null" zurück obwohl in meinem fall "Home" im wert steht, und das mit jeden wert den ich abfrage außer den wert "status" innerhalb der ersten klammer noch vor {}body...
Hab auch versucht es mit json nach objekt zu konvertieren, ändert aber nichts.tja, ohne konkrete Daten kann man da nichts machen
-
@fastfoot said in Brauche hilfe json Array verschachtelung zu parsen:
tja, ohne konkrete Daten kann man da nichts machen
und die wären? die tatsächliche json? wird nichts anderes zeigen denke ich, ich schick sie gleich mal...
-
@newpicsel sagte in Brauche hilfe json Array verschachtelung zu parsen:
@fastfoot said in Brauche hilfe json Array verschachtelung zu parsen:
tja, ohne konkrete Daten kann man da nichts machen
und die wären? die tatsächliche json? wird nichts anderes zeigen denke ich, ich schick sie gleich mal...
ja, die tatsächlichen Daten, persönliche Angaben kannst du ja verändern
-
so....
{ "body": { "homes": [ { "id": "xy", "name": "Home", "altitude": 8, "coordinates": [ xy, xy ], "country": "DE", "timezone": "Europe\/Berlin", "rooms": [ { "id": "xy", "name": "Schlafzimmer", "type": "bedroom", "module_ids": [ "xy" ] }, { "id": "xy", "name": "Kinderzimmer", "type": "custom", "module_ids": [ "xy" ] }, { "id": "xy", "name": "K\u00fcche", "type": "kitchen", "module_ids": [ "xy" ] }, { "id": "xy", "name": "Wohnzimmer", "type": "custom", "module_ids": [ "xy" ] }, { "id": "xy", "name": "Badezimmer", "type": "bathroom", "module_ids": [ "xy" ] } ], "modules": [ { "id": "xy", "type": "NAPlug", "name": "Relais", "setup_date": 1512123665, "modules_bridged": [ "xy", "xy", "xy", "xy", "xy" ] }, { "id": "xy", "type": "NRV", "name": "K\u00fcche", "setup_date": 1514020470, "room_id": "xy", "bridge": "xy" }, { "id": "xy", "type": "NRV", "name": "Badezimmer", "setup_date": 1514023382, "room_id": "xy", "bridge": "xy" }, { "id": "xy", "type": "NRV", "name": "Kinderzimmer", "setup_date": 1514032377, "room_id": "xy", "bridge": "xy" }, { "id": "xy", "type": "NRV", "name": "Schlafzimmer", "setup_date": 1512123670, "room_id": "xy", "bridge": "xy" }, { "id": "xy", "type": "NRV", "name": "Wohnzimmer", "setup_date": 1512123670, "room_id": "xy", "bridge": "xy" } ], "therm_schedules": [ { "timetable": [ { "zone_id": 1, "m_offset": 0 }, { "zone_id": 3, "m_offset": 180 }, { "zone_id": 1, "m_offset": 240 }, { "zone_id": 3, "m_offset": 300 }, { "zone_id": 9373, "m_offset": 360 }, { "zone_id": 0, "m_offset": 480 }, { "zone_id": 7690, "m_offset": 1200 }, { "zone_id": 6622, "m_offset": 1320 }, { "zone_id": 1, "m_offset": 1380 }, { "zone_id": 3, "m_offset": 1620 }, { "zone_id": 1, "m_offset": 1680 }, { "zone_id": 3, "m_offset": 1740 }, { "zone_id": 9373, "m_offset": 1800 }, { "zone_id": 0, "m_offset": 1920 }, { "zone_id": 7690, "m_offset": 2640 }, { "zone_id": 6622, "m_offset": 2760 }, { "zone_id": 1, "m_offset": 2820 }, { "zone_id": 3, "m_offset": 3060 }, { "zone_id": 1, "m_offset": 3120 }, { "zone_id": 3, "m_offset": 3180 }, { "zone_id": 9373, "m_offset": 3240 }, { "zone_id": 0, "m_offset": 3360 }, { "zone_id": 7690, "m_offset": 4080 }, { "zone_id": 6622, "m_offset": 4200 }, { "zone_id": 1, "m_offset": 4260 }, { "zone_id": 3, "m_offset": 4500 }, { "zone_id": 1, "m_offset": 4560 }, { "zone_id": 3, "m_offset": 4620 }, { "zone_id": 9373, "m_offset": 4680 }, { "zone_id": 0, "m_offset": 4800 }, { "zone_id": 7690, "m_offset": 5520 }, { "zone_id": 6622, "m_offset": 5640 }, { "zone_id": 1, "m_offset": 5700 }, { "zone_id": 3, "m_offset": 5940 }, { "zone_id": 1, "m_offset": 6000 }, { "zone_id": 3, "m_offset": 6060 }, { "zone_id": 9373, "m_offset": 6120 }, { "zone_id": 0, "m_offset": 6240 }, { "zone_id": 7690, "m_offset": 6960 }, { "zone_id": 6622, "m_offset": 7140 }, { "zone_id": 1, "m_offset": 7200 }, { "zone_id": 9373, "m_offset": 7620 }, { "zone_id": 3, "m_offset": 7680 }, { "zone_id": 0, "m_offset": 7740 }, { "zone_id": 7690, "m_offset": 8400 }, { "zone_id": 6622, "m_offset": 8580 }, { "zone_id": 1, "m_offset": 8640 }, { "zone_id": 9373, "m_offset": 9060 }, { "zone_id": 3, "m_offset": 9120 }, { "zone_id": 0, "m_offset": 9180 }, { "zone_id": 7690, "m_offset": 9840 }, { "zone_id": 6622, "m_offset": 9960 }, { "zone_id": 1, "m_offset": 10020 } ], "zones": [ { "name": "Komfort", "id": 0, "type": 0, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 20 } ] }, { "name": "Nacht", "id": 1, "type": 1, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 17 }, { "room_id": "xy", "temp": 18 } ] }, { "name": "Eco", "id": 4, "type": 5, "rooms_temp": [ { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 } ] }, { "name": "Aufstehen", "id": 9373, "type": 4, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 } ] }, { "name": "Schlafen", "id": 6622, "type": 4, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 } ] }, { "name": "Schlarfzimmer Warm", "id": 7690, "type": 4, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 } ] }, { "name": "Komfort+", "id": 3, "type": 8, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 } ] } ], "name": "Winter", "default": false, "away_temp": 16, "hg_temp": 7, "id": "xy", "selected": true, "type": "therm" }, { "timetable": [ { "zone_id": 1, "m_offset": 0 }, { "zone_id": 0, "m_offset": 360 }, { "zone_id": 4, "m_offset": 480 }, { "zone_id": 0, "m_offset": 1020 }, { "zone_id": 1, "m_offset": 1320 }, { "zone_id": 0, "m_offset": 1800 }, { "zone_id": 4, "m_offset": 1920 }, { "zone_id": 0, "m_offset": 2460 }, { "zone_id": 1, "m_offset": 2760 }, { "zone_id": 0, "m_offset": 3240 }, { "zone_id": 4, "m_offset": 3360 }, { "zone_id": 0, "m_offset": 3900 }, { "zone_id": 1, "m_offset": 4200 }, { "zone_id": 0, "m_offset": 4680 }, { "zone_id": 4, "m_offset": 4800 }, { "zone_id": 0, "m_offset": 5340 }, { "zone_id": 1, "m_offset": 5640 }, { "zone_id": 0, "m_offset": 6120 }, { "zone_id": 4, "m_offset": 6240 }, { "zone_id": 3, "m_offset": 6660 }, { "zone_id": 0, "m_offset": 6960 }, { "zone_id": 1, "m_offset": 7140 }, { "zone_id": 0, "m_offset": 7620 }, { "zone_id": 3, "m_offset": 7740 }, { "zone_id": 0, "m_offset": 8400 }, { "zone_id": 1, "m_offset": 8580 }, { "zone_id": 0, "m_offset": 9060 }, { "zone_id": 3, "m_offset": 9180 }, { "zone_id": 0, "m_offset": 9840 }, { "zone_id": 1, "m_offset": 9960 } ], "zones": [ { "name": "", "id": 1, "type": 1, "rooms_temp": [ { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 } ] }, { "name": "Eco", "id": 4, "type": 5, "rooms_temp": [ { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 } ] }, { "name": "Komfort", "id": 0, "type": 0, "rooms_temp": [ { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 } ] }, { "name": "Komfort+", "id": 3, "type": 8, "rooms_temp": [ { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 } ] } ], "name": "Sommer", "default": false, "away_temp": 12, "hg_temp": 7, "id": "xy", "type": "therm" } ], "therm_mode": "schedule", "therm_setpoint_default_duration": 60, "schedules": [ { "timetable": [ { "zone_id": 1, "m_offset": 0 }, { "zone_id": 3, "m_offset": 180 }, { "zone_id": 1, "m_offset": 240 }, { "zone_id": 3, "m_offset": 300 }, { "zone_id": 9373, "m_offset": 360 }, { "zone_id": 0, "m_offset": 480 }, { "zone_id": 7690, "m_offset": 1200 }, { "zone_id": 6622, "m_offset": 1320 }, { "zone_id": 1, "m_offset": 1380 }, { "zone_id": 3, "m_offset": 1620 }, { "zone_id": 1, "m_offset": 1680 }, { "zone_id": 3, "m_offset": 1740 }, { "zone_id": 9373, "m_offset": 1800 }, { "zone_id": 0, "m_offset": 1920 }, { "zone_id": 7690, "m_offset": 2640 }, { "zone_id": 6622, "m_offset": 2760 }, { "zone_id": 1, "m_offset": 2820 }, { "zone_id": 3, "m_offset": 3060 }, { "zone_id": 1, "m_offset": 3120 }, { "zone_id": 3, "m_offset": 3180 }, { "zone_id": 9373, "m_offset": 3240 }, { "zone_id": 0, "m_offset": 3360 }, { "zone_id": 7690, "m_offset": 4080 }, { "zone_id": 6622, "m_offset": 4200 }, { "zone_id": 1, "m_offset": 4260 }, { "zone_id": 3, "m_offset": 4500 }, { "zone_id": 1, "m_offset": 4560 }, { "zone_id": 3, "m_offset": 4620 }, { "zone_id": 9373, "m_offset": 4680 }, { "zone_id": 0, "m_offset": 4800 }, { "zone_id": 7690, "m_offset": 5520 }, { "zone_id": 6622, "m_offset": 5640 }, { "zone_id": 1, "m_offset": 5700 }, { "zone_id": 3, "m_offset": 5940 }, { "zone_id": 1, "m_offset": 6000 }, { "zone_id": 3, "m_offset": 6060 }, { "zone_id": 9373, "m_offset": 6120 }, { "zone_id": 0, "m_offset": 6240 }, { "zone_id": 7690, "m_offset": 6960 }, { "zone_id": 6622, "m_offset": 7140 }, { "zone_id": 1, "m_offset": 7200 }, { "zone_id": 9373, "m_offset": 7620 }, { "zone_id": 3, "m_offset": 7680 }, { "zone_id": 0, "m_offset": 7740 }, { "zone_id": 7690, "m_offset": 8400 }, { "zone_id": 6622, "m_offset": 8580 }, { "zone_id": 1, "m_offset": 8640 }, { "zone_id": 9373, "m_offset": 9060 }, { "zone_id": 3, "m_offset": 9120 }, { "zone_id": 0, "m_offset": 9180 }, { "zone_id": 7690, "m_offset": 9840 }, { "zone_id": 6622, "m_offset": 9960 }, { "zone_id": 1, "m_offset": 10020 } ], "zones": [ { "name": "Komfort", "id": 0, "type": 0, "rooms_temp": [ { "room_id": "yx", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 20 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 20 }, { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 18 }, { "id": "xy", "therm_setpoint_temperature": 20 } ] }, { "name": "Nacht", "id": 1, "type": 1, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 17 }, { "room_id": "xy", "temp": 18 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 20 }, { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 17 }, { "id": "xy", "therm_setpoint_temperature": 18 } ] }, { "name": "Eco", "id": 4, "type": 5, "rooms_temp": [ { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 18 }, { "id": "xy", "therm_setpoint_temperature": 18 }, { "id": "xy", "therm_setpoint_temperature": 18 }, { "id": "xy", "therm_setpoint_temperature": 18 }, { "id": "xy", "therm_setpoint_temperature": 18 } ] }, { "name": "Aufstehen", "id": 9373, "type": 4, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 20 }, { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 19 } ] }, { "name": "Schlafen", "id": 6622, "type": 4, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 20 }, { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 20 }, { "id": "xy", "therm_setpoint_temperature": 19 } ] }, { "name": "Schlarfzimmer Warm", "id": 7690, "type": 4, "rooms_temp": [ { "room_id": "yx", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 20 }, { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 19 } ] }, { "name": "Komfort+", "id": 3, "type": 8, "rooms_temp": [ { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 19 }, { "room_id": "xy", "temp": 20 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 20 }, { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 19 }, { "id": "xy", "therm_setpoint_temperature": 20 } ] } ], "name": "Winter", "default": false, "away_temp": 16, "hg_temp": 7, "id": "xy", "selected": true, "type": "therm" }, { "timetable": [ { "zone_id": 1, "m_offset": 0 }, { "zone_id": 0, "m_offset": 360 }, { "zone_id": 4, "m_offset": 480 }, { "zone_id": 0, "m_offset": 1020 }, { "zone_id": 1, "m_offset": 1320 }, { "zone_id": 0, "m_offset": 1800 }, { "zone_id": 4, "m_offset": 1920 }, { "zone_id": 0, "m_offset": 2460 }, { "zone_id": 1, "m_offset": 2760 }, { "zone_id": 0, "m_offset": 3240 }, { "zone_id": 4, "m_offset": 3360 }, { "zone_id": 0, "m_offset": 3900 }, { "zone_id": 1, "m_offset": 4200 }, { "zone_id": 0, "m_offset": 4680 }, { "zone_id": 4, "m_offset": 4800 }, { "zone_id": 0, "m_offset": 5340 }, { "zone_id": 1, "m_offset": 5640 }, { "zone_id": 0, "m_offset": 6120 }, { "zone_id": 4, "m_offset": 6240 }, { "zone_id": 3, "m_offset": 6660 }, { "zone_id": 0, "m_offset": 6960 }, { "zone_id": 1, "m_offset": 7140 }, { "zone_id": 0, "m_offset": 7620 }, { "zone_id": 3, "m_offset": 7740 }, { "zone_id": 0, "m_offset": 8400 }, { "zone_id": 1, "m_offset": 8580 }, { "zone_id": 0, "m_offset": 9060 }, { "zone_id": 3, "m_offset": 9180 }, { "zone_id": 0, "m_offset": 9840 }, { "zone_id": 1, "m_offset": 9960 } ], "zones": [ { "name": "", "id": 1, "type": 1, "rooms_temp": [ { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 16 }, { "id": "xy", "therm_setpoint_temperature": 16 }, { "id": "xy", "therm_setpoint_temperature": 16 }, { "id": "xy", "therm_setpoint_temperature": 16 }, { "id": "xy", "therm_setpoint_temperature": 16 } ] }, { "name": "Eco", "id": 4, "type": 5, "rooms_temp": [ { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 }, { "room_id": "xy", "temp": 16 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 16 }, { "id": "xy", "therm_setpoint_temperature": 16 }, { "id": "xy", "therm_setpoint_temperature": 16 }, { "id": "xy", "therm_setpoint_temperature": 16 }, { "id": "xy", "therm_setpoint_temperature": 16 } ] }, { "name": "Komfort", "id": 0, "type": 0, "rooms_temp": [ { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 } ], "rooms": [ { "id": "xy", "therm_setpoint_temperature": 18 }, { "id": "xy", "therm_setpoint_temperature": 18 }, { "id": "xy", "therm_setpoint_temperature": 18 }, { "id": "xy", "therm_setpoint_temperature": 18 }, { "id": "xy", "therm_setpoint_temperature": 18 } ] }, { "name": "Komfort+", "id": 3, "type": 8, "rooms_temp": [ { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 }, { "room_id": "xy", "temp": 18 } ], "rooms": [ { "id": "yx", "therm_setpoint_temperature": 18 }, { "id": "yx", "therm_setpoint_temperature": 18 }, { "id": "yx", "therm_setpoint_temperature": 18 }, { "id": "yx", "therm_setpoint_temperature": 18 }, { "id": "yx", "therm_setpoint_temperature": 18 } ] } ], "name": "Sommer", "default": false, "away_temp": 12, "hg_temp": 7, "id": "xy", "type": "therm" } ] } ], "user": { "email": "xy@web.de", "language": "de-DE", "locale": "de-DE", "feel_like_algorithm": 0, "unit_pressure": 0, "unit_system": 0, "unit_wind": 0, "id": "xy" } }, "status": "ok", "time_exec": 0.021591901779174805, "time_server": 1611503100 }
-
machst du das in blockly oder in javascript?
wie heißt das objekt/variable, dem du das JSON zuweist?
Wenn die Variable a heist, dann ist das folgende richtig:a.body.homes[0].name
edit:
ok du holst es aus einem datenpunkt raus.
ist das JSON dort als String oder schon als Objekt drin? Wahrscheinlich string.
Dann musst du es erst in ein Objekt umwandelnvar a = JSON.parse(getState("Objekt_ID").val); a.body.homes[0].name
-
keine chance, ich bekomme immer den wert "null" zurück...
ich machs in Blockly aber sollte normal genauso gehen!
homeData = (function () { try {return JSON.parse(getState("0_userdata.0.Eigene_Objekte.Netatmo.Home_Data_json").val);} catch(e) {return {};}})(); homeName = getAttr(homeData, 'body.homes[0].name'); console.log(homeName);
das kann doch nicht wahr sein, ich werde noch bekloppt!
-
@newpicsel sagte in Brauche hilfe json Array verschachtelung zu parsen:
das kann doch nicht wahr sein, ich werde noch bekloppt!
ich glaube da stimmt was nicht mit Blockly, bin aber nicht ganz sicher. So gehts aber
-
@fastfoot sagte in Brauche hilfe json Array verschachtelung zu parsen:
ich glaube da stimmt was nicht mit Blockly, bin aber nicht ganz sicher.
Also, auch ältere Versionen arbeiten nicht anders, bin bis auf die 4.7.4 zurück. Mich kommt aber
body.homes.0
als Attribut seltsam vor. @paul53 was meinst Du dazu? In JS jedenfalls wäre das ungültig, wird in Blockly ja allerdings mit getAttr() gemacht -
Unglaublich es funktioniert, sobald einmal die array "[]homes" selektiert ist, kannst danach alle werte auslesen!
vielen Dank!dann muss ich nur noch eine liste aus allen id´s von "modules.modules_bridged" erstellen, wie kann ich dann die zugehörigen namen der id´s ermitteln?
kann ich eine aktion in eine schleife packen, die genau so oft durchläuft wie id´s in der liste sind und jedesmal die variable mit der nächsten id gefüllt wird?
geht darum, dass die objekte der räume automatisch angelegt werden, die ja bei jedem user anders heißen und unterschiedlich viele sind...für mich könnte ich alles manuel anlegen aber es soll ja am besten ohne weiteres für alle anwendbar sein.
"modules": [ { "id": "xy", "type": "NAPlug", "name": "Relais", "setup_date": 1512123665, "modules_bridged": [ "123","456","789","987","654" ] },
{ "id": "123", "name": "Wohnzimmer", "type": "custom", "module_ids": [ "123" ] }, { "id": "456", "name": "Badezimmer", "type": "bathroom", "module_ids": [ "456" ] }
-
@fastfoot said in Brauche hilfe json Array verschachtelung zu parsen:
Also, auch ältere Versionen arbeiten nicht anders, bin bis auf die 4.7.4 zurück. Mich kommt aber
body.homes.0
als Attribut seltsam vor. @paul53 was meinst Du dazu? In JS jedenfalls wäre das ungültig, wird in Blockly ja allerdings mit getAttr() gemachtAlso ich hab den schritt body.homes.0 nicht getestet, da ich in der liste "ListElem" auf die werte schon zugreifen kann, ich finds auch seltsam aber ich kenne mich auch nicht damit aus...
-
@newpicsel Auf modules kannst du so zugreifen
-
@newpicsel sagte in Brauche hilfe json Array verschachtelung zu parsen:
Also ich hab den schritt body.homes.0 nicht getestet, da ich in der liste "ListElem" auf die werte schon zugreifen kann,
für ListElem so
-
Ja stimmt, jetzt wo ich den block gesehen habe, ist es mir auch wieder eingefallen.
Danke dir und auch den anderen, ich bin fast verzweifelt!
-
Abend,
eine frage habe ich noch, vielleicht kannst du oder jemand helfen?Wie kann ich etwas nach einem Wert aus der Liste "modules" filtern?
Ich möchte zb. nur den block ausgeben, wo "name: "Relais"" enthalten ist.So klappt es nicht, wobei wenn ich nach den ersten block frage alles klappt, liegt also nur an dem filter, ich weiß nicht wie der hier aussehen müsste...
Ich kann nicht sicher sagen ob mein gewünschter Inhalt immer der erste block in der liste ist. -
@newpicsel sagte in Brauche hilfe json Array verschachtelung zu parsen:
Abend,
eine frage habe ich noch, vielleicht kannst du oder jemand helfen?Wie kann ich etwas nach einem Wert aus der Liste "modules" filtern?
Ich möchte zb. nur den block ausgeben, wo "name: "Relais"" enthalten ist.So klappt es nicht, wobei wenn ich nach den ersten block frage alles klappt, liegt also nur an dem filter, ich weiß nicht wie der hier aussehen müsste...
Ich kann nicht sicher sagen ob mein gewünschter Inhalt immer der erste block in der liste ist.den Filter musst du selbst bauen, indem du bei jedem Durchlauf prüfst und dann die Schleife abbrichst