Javascript JSON jQuery问题

Javascript JSON jQuery问题,javascript,jquery,json,twitter,Javascript,Jquery,Json,Twitter,所以我第一次尝试JSON。我有一个我正试图输出的Twitter API提要。只是想知道我错在哪里。附件是我的密码 <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.4.4.js"></script> </head> <body> <ol class="result"><

所以我第一次尝试JSON。我有一个我正试图输出的Twitter API提要。只是想知道我错在哪里。附件是我的密码

<!DOCTYPE html>

<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
  </head>
  <body>
    <ol class="result"></ol>
    <script>
      $.getJSON('http://api.twitter.com/1/trends/1105779.json', function(json) {
        alert(json.trends.query[1]);
        $('.result').html('<li>' + json.trends.query + '</li>');
      });
    </script>
  </body>
</html>
<!-- http://api.twitter.com/1/trends/1105779.json -->
将URL更改为'http://api.twitter.com/1/trends/1105779.json?callback=?"

您的请求需要经过JSONP处理才能绕过XHR策略限制


如果URL包含类似callback=?jQuery发挥了神奇的作用,使请求成为JSONP请求。更多信息:

查看您提供的url返回的json,您需要:

alert(json.trends[1].query);

趋势是一个对象列表,每个对象都有查询键。

您的问题是,您试图像访问数组一样访问查询。它不是,它是一个物体。趋势是实际的数组。因此,如果您想要趋势数组中第二个对象的query属性,这似乎是您正在尝试的,您可以这样做:

var query = json.trends[1].query; 
编辑:

如一位评论者所言,如果您正试图访问trends数组中的第一个元素,那么它位于数组索引0处。因此:

您的第二条语句json.trends.query也是无效的,因为trends是一个数组,而不是一个对象,并且没有属性查询。如果您的目标是从trends数组中的所有对象获取每个查询属性,请使用jQuery的循环构造。像这样:

$.each(json.trends, function(i, result) {
     $('.result').append(result.query);
});
您还需要添加callback=?到传递给的查询字符串的末尾。jQuery取代了?使用随机生成的函数名,这允许jQuery调用回调函数并将数据传递给它。这将实现一个请求,该请求不受限制

总而言之:

  $.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);
    });
  });

我很想知道你的问题是什么?那个URL没有返回JSON字符串。看起来应该是JSON[0]。至少在chromeNo上是这样的趋势……我在他发布的时候回答了这个问题。访问数组中的第二个元素,即索引1。感谢您的建议。我现在明白我的错误了。然而,我在chrome控制台中遇到了一个错误:1105779.json:-1Resource被解释为脚本,但使用MIME类型application/json传输。twitter.html:10未捕获类型错误:无法读取未定义匿名函数twitter.html:10 jQuery.extend.handleSuccessjquery-1.4.4.js:6170 jQuery.extend.ajax.windowjquery-1.4.4.js:5820匿名函数1105779.json:1
  $.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);
    });
  });