Thread Zugang zum Array verzweifelt gesucht (16 answers)
Opened by Perlentaucher at 2015-03-09 11:07

Perlentaucher
 2015-03-09 11:07
#180064 #180064
User since
2014-08-04
26 Artikel
BenutzerIn

user image
Hallo zusammen

wieder einmal taucht der Perlentaucher im Trueben und hofft eine Perle zu finden...

Mein Program, bei dem Ihr mir schon zweimal erfolgreich geholfen habt ist nun schon sehr weit gediegen. Dennoch stehe ich immer wieder vor neuen Herausforderungen, die mich immer wieder aufs Neue vor Raetsel stellen.
Und das, obwohl ich der Meinung bin: "Das muesstest du doch nun mal langsam koennen" :-)

Zum Problem:

Mein Program ruft von einer Website den folgenden JSON String ab:

Code: (dl )
{"id":"/heatingCircuits/hc1/switchPrograms/A","type":"switchProgram","setpointProperty":{"id":"/heatingCircuits/hc1/temperatureLevels","uri":"http://192.168.178.58/heatingCircuits/hc1/temperatureLevels"},"maxNbOfSwitchPoints":42,"maxNbOfSwitchPointsPerDay":6,"switchPointTimeRaster":15,"writeable":1,"switchPoints":[{"dayOfWeek":"Mo","setpoint":"comfort2","time":240},{"dayOfWeek":"Mo","setpoint":"eco","time":1320},{"dayOfWeek":"Tu","setpoint":"comfort2","time":240},{"dayOfWeek":"Tu","setpoint":"eco","time":1320},{"dayOfWeek":"We","setpoint":"comfort2","time":240},{"dayOfWeek":"We","setpoint":"eco","time":1320},{"dayOfWeek":"Th","setpoint":"comfort2","time":240},{"dayOfWeek":"Th","setpoint":"eco","time":1320},{"dayOfWeek":"Fr","setpoint":"comfort2","time":240},{"dayOfWeek":"Fr","setpoint":"eco","time":1320},{"dayOfWeek":"Sa","setpoint":"comfort2","time":360},{"dayOfWeek":"Sa","setpoint":"eco","time":1380},{"dayOfWeek":"Su","setpoint":"comfort2","time":360},{"dayOfWeek":"Su","setpoint":"eco","time":1380}]} 


Der Befehl$json = decode_json(encode_utf8($decodedContent)); macht daraus auch brav einen hash dessen Felder ich zum Teil auch ausgeben kann.

Die Ausgabe hierfuer lautet:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
### Console Message if enabled
print ": $JsonId\n";
print(" - JsonResponse : " . $json . "\n");}
print(" - JSON Type : " . $json->{type} . "\n");}
print(" - JSON setpointProperty : " . $json->{setpointProperty}. "\n");}
print(" - JSON switchPoints : " . $json->{switchPoints} . "\n");}

my @temparray = $json->{switchPoints};
print(" - JSON temparray : ");
print @temparray;
print("\n");


print(" - JSON temparray[1] : ");
print $temparray[1];
print("\n");


Die Ausgabe lautet:

Code: (dl )
1
2
3
4
5
6
 - JsonResponse             : HASH(0xc88568)
- JSON Type : switchProgram
- JSON setpointProperty : HASH(0x1469af8)
- JSON switchPoints : ARRAY(0x1468d30)
- JSON temparray : ARRAY(0x1468d30)
- JSON temparray[1] :


Bis zur Ausgabe  - JSON switchPoints        : ARRAY(0x1445690) ist die Welt noch in Ordnung, aber wieso gibt mit der Befehl print @temparray; bzw. die Einzelfeldausgabe nicht den Inhalt des Arrays aus?

Koennt Ihr mir nochmals helfen?

DANKE!

Gruss
Der Perlentaucher

View full thread Zugang zum Array verzweifelt gesucht