我想创建一个简单的基于Web的工具,通过他们的API请求Enviroment Agency(EA)数据。 他们的指示如下: http://environment.data.gov.uk/flood-monitoring/doc/reference
如果可能,我想使用jquery。
我的问题是: 上面的链接是否提供了足够的信息来完成我的任务?我问的原因是我正在努力开始这项任务。
我希望编写如下内容来计算条目数,例如:
$.ajax({
url: 'http://environment.data.gov.uk/flood-monitoring', //not sure if this link is correct
type: 'GET',
success: function(data){
alert(data.length+' package(s) found')
},
error: function() {
alert('Failed to get the list of packages.')
},
dataType: 'jsonp',
jsonpCallback: 'jsonpcallback'
});
上面的链接似乎没有提供此类说明。 我已经通过电子邮件向EA询问了示例代码,但看起来它们没有任何代码。
关于上述链接是否缺少链接到其API的重要说明的任何反馈都将非常感谢。如果答案是肯定的,那么我知道继续向EA询问更多说明。 否则更多的阅读对我来说!
提前致谢
答案 0 :(得分:0)
响应数据是一个对象,而不是数组。
因此,data.length
不起作用。
试试Object.keys(data)
,您会看到自己拥有数据。
$.ajax({
url: 'http://environment.data.gov.uk/flood-monitoring/data/readings?latest',
type: 'GET',
success: function(data){
var keys = Object.keys(data);
var size = keys.length;
console.log('number of keys: ' + size);
if (size) {
keys.map(function(key, i){
console.log('key: ' + key);
if (key == '@context') {
console.log(' ' + data[key]);
}
else if (key == 'meta') {
console.log(' ' + JSON.stringify(data[key]));
}
else if (key == 'items') {
console.log('data[items][0]:');
console.log(' ' + JSON.stringify(data[key][0]));
}
});
}
},
error: function() {
console.error('Failed to get the list of packages.')
}
});