JSON Übergabe auslesen / auf Index zugreifen

xthetronx

Erfahrenes Mitglied
Hallo zusammen,

ich bin nun mit meinem Latein am Ende.
Eigentlich will ich ja nur Daten per JSON per httpRequest auslesen und verarbeiten.

Dazu habe ich viele Post und Artikel gelesen, ein bisschen was klappt auch, aber das reicht ja meist nicht. Ich versuche verzweifelt auf den Index zuzugreifen.

Ich möchte Daten aus der DB in eine JavaScript funktion einbauen und habe dazu eine kleinen Test gemacht, an dessen Umsetzung ich aber schon scheitere.

html-Datei die Ausgelesen wird (später per PHP generiert) datei.html
HTML:
[
    {"text": "Ein Eintrag", "Name": "Peter"},
    {"text": "2ter Eintrag", "Name": "Klaus"},
    {"text": "3ter Eintrag", "Name": "Andre"}              
]

Dann die Datei in der ausgelesen wird.
HTML:
...
<script type="text/javascript"><!-- 
var http = null;
if (window.XMLHttpRequest) {
   http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
   http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (http != null) {
   http.open("GET", "datei.html", true);
   http.onreadystatechange = ausgeben;
   http.send(null);
}

function ausgeben() {
   if (http.readyState == 4) {
       var rueckgabe = http.responseText;
       var objekt = eval("(" + rueckgabe + ")");
       for (var index in objekt){
           var element = objekt[index];
           alert(element);
           var text = element.text;
           var url = element.url;
           var li = document.createElement("li");
           var textknoten = document.createTextNode(text + " (" + url + ")");
           li.appandChild(textknoten);
           ul.appendChild(li);
       }
   }
}
...

Lasse ich mir per alert ausgeben, bekomme ich den ersten Eintrag ("Erster Eintrag")
Code:
alert(element.text);
Versuche ich nun auf das zweite Array zuzugreifen
Code:
alert(element.text[1]);
bekomme ich nur den das 'i' von 'Ein' angezeigt.:confused:
Das Selbe, wenn ich es auf diese Art versuche:
Code:
alert(element["text"]);
Code:
alert(element["text"][1]);

Wäre sehr dankbar, wenn mir jemand meinen gedanklichen Knoten im Hirn entfernen würde.

Gruß

Torsten
 
Moin Sven,

hab´s hinbekommen.

So funktioniert es einwandfrei:
Code:
for(i...){
document.write(element[i].text);
}

Vielen Dank für Deine Antwort.

Gruß

Torsten
 

Neue Beiträge

Zurück