json in Javascript

Lexx

Grünschnabel
Hallo,
ich bin neu hier und bräuchte Hilfe bei einem Problem:

Ich versuche Daten aus meiner Rolladensteuerung(HomeMatic von Rademacher) in HTML anzuzeigen.
Über die IP der Steuerung kann ich Daten auslesen, welche vermutlich als json vorliegen. Das sieht dann so aus:
Code:
{ "name" : "Rolladen Wohnzimmer 2", "avail" : true,"iconset" : "Rollladen 2", "iconsetKey" : "iconset15", "description" : "", "did" : 10007, "deviceGroup" : 2, "favoredId" : -1, "statusesMap" : {"Position":100,"Manuellbetrieb":0}, "groups" : [  ] , "sync" : -2147483253, "properties" : {"time":3,"dawn":3,"dusk":3,"dust":3,"sun":3,"favored":3,"manual":3,"wind":3,"rain":3,"trigger":3,"generic":3,"temperator":3,"temperature":3,"motion":3,"smoke":3,"closingContact":3,"states":[{"cfgKey":"setEveningAuto","cfgId":107,"state":1},{"cfgKey":"setAutomationOverall","cfgId":99,"state":0},{"cfgKey":"setMorningAuto","cfgId":103,"state":1},{"cfgKey":"setTimeAuto","cfgId":101,"state":1},{"cfgKey":"setWindAuto","cfgId":111,"state":0},{"cfgKey":"setSunAuto","cfgId":105,"state":0},{"cfgKey":"setRainAuto","cfgId":109,"state":0}]} }
Jetzt würde ich gerne ein Teil dieser Daten in ein Javascript importieren (Hauptsächlich die aktuelle position "Position":100,)

Hab versucht mit getJSON das ganze rüber zu holen:

Code:
<html>
<head>
<title>JavaScript-Test</title>

<script type="text/javascript" src="jquery-1.10.2.min.js"> </script>
</head>

<script>
var var_1 = "funktioniert";
var var_2
document.write("<b>Hallo " + var_1 + "<\/b>");

$.getJSON("http://192.168.0.2:8001/devices/10007", function(name) {
	var_2 = name.Position;
 });

document.write("<b>Hallo " + var_2+ "<\/b>");

</script>

<body>

</body>
</html>

Als ergebnis bekomme ich "undefined" ... ist das überhaupt so machbar? für jede Hilfe wäre ich sehr dankbar!!
Grüße Michael
 
Zuletzt bearbeitet von einem Moderator:

Cromon

Erfahrenes Mitglied
Hallo Michael

Gemäss deinem Beispiel-JSON sieht das Objekt folgendermassen aus:


Wie du sehen kannst ist Position Kind des Elements statusesMap, du müsstest also machen:
Javascript:
var_2 = name.statusesMap.Position;

Viele Grüsse
Cromon