环境署 - API

时间:2016-09-30 15:52:25

标签: jquery json api

我想创建一个简单的基于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询问更多说明。 否则更多的阅读对我来说!

提前致谢

1 个答案:

答案 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.')
    }
});