Hallo,
ich hab folgendes Problem:
Ich möchte eine JSON, die extern auf einem Server liegt, auf einem mobilen Endgerät verarbeiten und die enthalten Inhalte als News anzeigen lassen.
Der normale Weg, einfach nur "$.getJSON(url, function(data) {..}" zu verwenden, ging leider nicht.
Ich muss erst ein XMLHttpRequest durchführen, um an die JSON zu gelangen.
An die JSON komm ich nun, aber verarbeiten kann ich sie noch nicht. Irgendwie fehlt mir da noch etwas.
Ich habe versucht die "xhr.response" als JSON zu parsen also "JSON.parse(...)" bzw. "$.parseJSON(..)", aber da gab mir die Konsole immer "Object undefined" aus.
Ich hab deshalb dann auch versucht "xhr.responseType = 'json';" hinzuzufügen, das brachte das Programm dann zum Stillstand - nix wurde angezeigt nicht einmal Logs.
Beispiel-Ausgabe von "console.log('xhr.response')" (soweit funktioniert es also, JSON-Lint sagt auch, die Datei wäre valide):
Mein Code:
Was mach ich falsch?
Was muss ich anders machen?
Wie bekomme ich eine Ausgabe die auf dem mobilen Endgerät angezeigt werden kann?
Vielen Dank im Voraus für eure Unterstützung.
Gruß,
pyretta
ich hab folgendes Problem:
Ich möchte eine JSON, die extern auf einem Server liegt, auf einem mobilen Endgerät verarbeiten und die enthalten Inhalte als News anzeigen lassen.
Der normale Weg, einfach nur "$.getJSON(url, function(data) {..}" zu verwenden, ging leider nicht.
Ich muss erst ein XMLHttpRequest durchführen, um an die JSON zu gelangen.
An die JSON komm ich nun, aber verarbeiten kann ich sie noch nicht. Irgendwie fehlt mir da noch etwas.
Ich habe versucht die "xhr.response" als JSON zu parsen also "JSON.parse(...)" bzw. "$.parseJSON(..)", aber da gab mir die Konsole immer "Object undefined" aus.
Ich hab deshalb dann auch versucht "xhr.responseType = 'json';" hinzuzufügen, das brachte das Programm dann zum Stillstand - nix wurde angezeigt nicht einmal Logs.
Beispiel-Ausgabe von "console.log('xhr.response')" (soweit funktioniert es also, JSON-Lint sagt auch, die Datei wäre valide):
"{"data":{"items":[{"id":"18","tstamp":"1381504148","headline":"irgend eine Überschrift","alias":"seitenalias","date":"1381500960","time":"1381500960","subheadline":"...","teaser":"<p>Artikel-Teaser<\/p>","alt":"Alternativ-Text","path":"files\/images\/bild.jpeg","name":"Autor","text":"<p>Lorem Ipsum<\/p>"}]}}"
Mein Code:
Code:
var xhr = new XMLHttpRequest({mozSystem: true});
xhr.open("GET", "http://www.domain.de/json/news.json", true);
xhr.onreadystatechange = function () {
if(xhr.readyState == 4){
if(xhr.status == 200){
console.log('SUCCESS');
console.log(xhr.response);
$.getJSON(xhr.response, function(data) {
console.log("getJSON");
$.each(data.datas.items, function(i,item) {
var title = item.headline;
var subtitle = item.subheadline;
var description = item.teaser;
var content = item.text;
var pubdate = item.date;
var creator = item.name;
var guid = item.alias;
var imgsrc = item.path;
var imgalt = item.alt;
var id = item.id;
var newsimg_src = "";
var newsimg = "";
if(imgsrc != null){
newsimg_src = "http://www.domain.de/" + imgsrc;
newsimg = '<img src="'+newsimg_src+'" alt="'+ title +'" title="'+ title +'" id="img_'+id+'" class="newsimg" />';
}else{
newsimg = '<img src="http://www.tutorials.de/images/content/newsimg_platzhalter.jpg" alt="'+ title +'" title="'+ title +'" id="img_'+id+'" class="newsimg" />';
}
$('<li class="newsid_'+id+'"><a class="newsid_'+id+'" href="news_detail.html" rel="external" data-transition="slide" onClick="javascript:sessionStorage.newsid=\''+id+'\';"><div class="news_content newsid_'+id+'" data-inline="true"><div class="img_container newsid_'+id+'">'+newsimg+'</div><div class="desc_container newsid_'+id+'"><h3>'+title+'</h3>'+description+'</div><div class="clear"><!-- clear --></div></div></a></li>').appendTo('#newsliste');
$('#newsliste').listview('refresh');
});
});
}
}
}
xhr.onerror = function (e) {
alert('ERROR: '+ e.error);
};
xhr.send(null);
Was mach ich falsch?
Was muss ich anders machen?
Wie bekomme ich eine Ausgabe die auf dem mobilen Endgerät angezeigt werden kann?
Vielen Dank im Voraus für eure Unterstützung.
Gruß,
pyretta
Zuletzt bearbeitet: