我有这个网址是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;
});
});
});
谢谢!
答案 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
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()