2013-10-25 62 views
1

我正在接受培训,我的任务是使用jQuery从外部JSON站点获取数据。我正在使用一个Singleton类来这样做。数据将在初始化期间从this site获取,数据将作为属性添加到类中。作为一个提示,我被告知使用回调函数来确保数据被提取。这link显示了我到目前为止的想法。我在html上运行这个脚本(加载jquery),我没有得到任何结果。我不确定我的jQuery代码是否正确。使用jQuery从外部JSON站点获取数据,Singleton类

任何建议/指导,非常感谢。

谢谢。

回答

0

有很多使用jquery通过http访问api的例子。一个例子是:

$.getJSON("ajax/test.json", function(data) { 
    var items = []; 
    $.each(data, function(key, val) { 
     items.push("<li id='" + key + "'>" + val + "</li>"); 
    }); 
    $("<ul/>", { 
     "class": "my-new-list", 
     html: items.join("") 
    }).appendTo("body"); 
}); 

http://api.jquery.com/jQuery.getJSON/

什么问题,你用一个Singleton解决?为什么你需要执行一个类的单个实例?

+0

有人问我。这是一项任务。 感谢您添加示例。我之前和其他人一起尝试过没有结果。我现在得到了结果。谢谢我会从这里拿走它! –

1

您的脚本正在工作,问题在于警报超出了ajax成功回调的范围,所以您没有看到它。

jQuery.ajax({ 
      type: "GET", 
      url: feedurl, 
      dataType: 'json', 
      data: 'data', 
      success: function(data) { 
       object = data; 
      } 
     });  alert(object); 

这应该是:

jQuery.ajax({ 
      type: "GET", 
      url: feedurl, 
      dataType: 'json', 
      data: 'data', 
      success: function(data) { 
       object = data; 
        alert(object); 
      } 
     }); 

有关的信息,你可以做同样的事情,只有:

$.getJSON('http://freegeoip.net/json/', function(data) { 
    alert(data); 
}); 
+0

我将警报转入jquery段。我仍然通过[对象对象]得到警报窗口。这是预期的吗?我以为我会从该json站点获取字符串。我错过了什么吗? –

+0

是的。使用'console.log(object)'在developper控制台中查看'object'的内容(F12来激活它) – RafH