需要关于jquery和json的方向

时间:2010-07-11 22:30:45

标签: javascript jquery json

我有这个网址是JSON webservice http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2

我需要编写一个jquery函数来从上面的url访问JSON对象。 我不知道如何继续这项任务。有人可以帮助我开始使用jquery代码吗?

由于


为了显示HTML,我删除了“<”对于每个标签。 我在下面尝试做的是迭代通过JSON对象返回的项目。但是,我似乎没有得到任何结果。有人可以在这方面指出我的错误。

体>

div id =“para”>

/ DIV>

脚本>

$。getJSON('http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2',function(data){

      $.each(data.weatherObservations, function(i,item){
        $("<p/>").attr("src", item.temperature).appendTo("#para");
        if ( i == 3 ) return false;
      });
    });

/脚本&GT;

/体&GT;

谢谢。


您好,

我现在需要访问其他网络服务。我在与上面完全相同的行上键入代码,但我没有得到任何输出。有人可以指点我的错误吗?

jQuery(document).ready(function() {

  var url = 'http://www.worldweatheronline.com/feed/weather.ashx?q=75080&format=json&num_of_days=5&key=ac9c073a8e025308101307';

  jQuery.getJSON(url, function(data) {
      $.each(data.data.weather, function(i, item){
        $("body").append("<p>"+item.date+"</p>");
        if ( i == 3 ) return false;
      });
    }); 
 });

谢谢!

3 个答案:

答案 0 :(得分:3)

应该这么简单:

<script type="text/javascript">
  jQuery.getJSON('http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2', function(data) {
    // The JSON object is now in the data variable --
    // process it here; for example:
    alert(data.weatherObservations[0].clouds);
  });
</script>

但请记住,您的AJAX调用必须来自同一个域(ws.geonames.org),因为大多数现代浏览器不允许跨域请求。解决方法是使用JSON-P格式而不是纯JSON。

...回应菜鸟对原始问题的编辑,这是一个更完整的解决方案:

<html><head></head><body>
  <div id="para"></div>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  <script>
    jQuery.getJSON('http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2', function(data) {
      jQuery.each(data.weatherObservations, function(i,item){
        jQuery("<p/>").html(item.temperature).appendTo("#para");
      });
    });
  </script>
</body></html>

答案 1 :(得分:2)

为了帮助您阅读回来的内容,请将其放入http://jsbeautifier.org/并将其格式化以便可读。

除了Mark的答案,你应该验证textStatus

http://jsfiddle.net/VC5c2/

var url = "http://ws.geonames.org/weatherJSON?north=90&south=-9.9&east=-22.4&west=55.2";

​jQuery.getJSON(url,function(data, textStatus) {
    if (textStatus == "success") {
        for (idx in data.weatherObservations) {
            var wo = data.weatherObservations[idx];
            console.log("Temperature at " + wo.stationName + ":  " + wo.temperature);
        }
    }
});​

答案 2 :(得分:1)

首先搜索jquery json已打开此页面,这似乎正是您所需要的:jQuery.getJSON()