Huber: Von XML zu JSON (Hilfe)

Beitrag lesen

Hallo,

bei einem XMLHttpRequest hast du den JSON-Code in der Eigenschaft responseText (statt responseXML). Du musst diesen String noch selbst in ein JavaScript-Objekt parsen, um in JavaScript auf die Daten zugreifen zu können. Das kannst du mit JSON.parse() machen. Das window.JSON-Objekt sowie die parse-Methode haben einige Browser schon nativ eingebaut, für den Rest gibt es einen JSON-Parser in JavaScript, den du einbinden kannst: http://www.json.org/js.html.

Prüfe mal die Ausgabe deines FotoAntwort.jsp. Da sollte nur JSON-Code drinstehen. Der MIME-Typ sollte application/json sein. Kein HTML-Code, auch keine Kommentare.
Anstelle eines Objects solltest du einen Array verwenden. Den kannst du nach dem Parsen einfach durchlaufen.

Beispiel
JSON-String der JSP:
[ { "url" : "bild.jpg", "name" : "Hallo Welt", ... }, ... ]

JavaScript-Verarbeitung:

var bilderHTML = '';

var bilder = JSON.parse(client.responseText);
for (var i = 0, l = bilder.length; i < l; i++) {
  var bild = bilder[i];
  bilderHTML += '<img src="' + bild.url + '">' + bild.name; // usw.
}


>   
> Das ist im Grunde viel einfacher als XML-DOM.  
>   
> Mathias  
  
Hallo und danke für die schnelle Antwort. Habe den MIME-Typ in der FotoAntwortJSON umgestellt das war schonmal ein sehr guter Tipp. Danke. Jetzt habe ich nur den Code zur Verarbeitung in den EventHandler eingesetzt und es einmal durchlaufen lassen. Jetzt gibt mir Firebug im Firefox einen Fehler aus bei der Zeile" var bilder = JSON.parse(client.responseText);"  
Muss ich den Inhalt aus der FotoAntwortJSON noch nach Ihrem Beispiel anpassen oder reicht es so wie es ist?  
  
Gruß Huber