Ihr Problem ist, dass Sie versuchen, auf query
zuzugreifen, als ob es ein Array wäre. Es ist nicht, es ist ein Objekt. trends
ist das eigentliche Array. Wenn Sie also die query
Eigenschaft des zweiten Objekts in dem trends
Array wollten, das ist, was es scheint, dass Sie versuchen zu tun, würden Sie dies tun:
var query = json.trends[1].query;
EDIT:
Wenn Sie sind, Wie ein Kommentator vorschlägt, versucht man, auf das erste Element im trends
Array zuzugreifen, es ist am Array-Index 0
. Also:
var query = json.trends[0].query;
Ihre zweite Aussage ist json.trends.query
auch ungültig, weil trends
ein Array ist, kein Objekt, und hat keine Eigenschaft query
. Wenn Ihr Ziel darin besteht, jede query
-Eigenschaft aus allen Objekten im trends
-Array zu erhalten, verwenden Sie das $.each()
-Konstrukt von jQuery. Wie so:
$.each(json.trends, function(i, result) {
$('.result').append(result.query);
});
Sie müssen auch callback=?
bis zum Ende Ihrer Abfrage-String Sie $.getJSON()
passieren hinzuzufügen. jQuery ersetzt ?
durch einen zufällig generierten Funktionsnamen, mit dem jQuery Ihre Callback-Funktion aufrufen und die Daten übergeben kann. Dies implementiert eine JSONP Anfrage, die nicht der same-origin policy unterliegt.
Dass sie alle zusammen:
$.getJSON('http://api.twitter.com/1/trends/1105779.json?callback=?', function(json) {
alert(json.trends[1].query);
$.each(json.trends, function(i, result) {
$('.result').append(result.query);
});
});
Und ich bin neugierig zu wissen, was dein Problem ist? – jfar
Diese URL gibt keine JSON-Zeichenfolge zurück. – Inigoesdr
ja tut es ..... – Hamish