首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AJAX调用来调用Transport for London Open API空气质量数据?

使用AJAX调用来调用Transport for London Open API空气质量数据?
EN

Stack Overflow用户
提问于 2019-06-25 23:23:24
回答 1查看 152关注 0票数 0

我正在尝试使用伦敦交通局( Transport for London,TFL)的开放API解析空气质量数据。我已经使用以下代码使API适用于公共汽车线路和路线

代码语言:javascript
复制
        function getTimes(){

            $.ajax({
                type: 'GET',
                url: 'https://api-ganges.tfl.gov.uk/Line/64/Arrivals?app_id=XXXXX&app_key=XXXXX',
                dataType: 'json',

                success: function(data){
                    $("#times").html("");

                    // declare a variable called sorted
                    var sorted = data.sort(function(a,b){
                        if (a.timeToStation > b.timeToStation){
                            return 1;
                        }
                        if (a.timeToStation < b.timeToStation){
                            return -1;
                        }
                        return 0;
                    });
                    $.each(data, function(key, value){
                        var line = value.lineName;
                        var stopName = value.stationName;
                        var destination = value.destinationName;
                        var time = value.timeToStation;
                        time = parseInt(time/60);
                        time < 1 ? time = "due" : time = time+" min";
                        $("#times").append(line+" "+stopName+"-"+destination+" "+time+"<br>");


                    });
                }
            });

        }

这在按下按钮时被调用,并返回公交车路线和时间的列表,直到它们到达。

到目前为止,我已经尝试使用下面的代码:

代码语言:javascript
复制
        function getAirQuality(){

            $.ajax({
                type: 'GET',
                url: 'https://api-ganges.tfl.gov.uk/AirQuality?app_id=XXXXX&app_key=XXXXX',
                dataType: 'json',

                success: function(data){


                    $.each(data, function(key, value){
                        console.log(data)
                        var array = [];
                        var summary = value;




                        //var text = value.currentForecast;

                        $("#air").append(summary);


                    });
                }
            });

        }

如果我console.log(数据)发现有一个名为currentForecast的对象,我只能让它打印"value“,但是如果我将它添加到我的代码中,当按钮被按下时,它不会显示任何内容。

完整的代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>JSSample</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>

<div id="times">Times</div>
<button onclick="getTimes();">Click to get times</button>
<div id="air">Air Quality forecast summary:</div>
<button onclick="getAirQuality();">Click to get Air Quality</button>
<script>





        function getTimes(){

            $.ajax({
                type: 'GET',
                url: 'https://api-ganges.tfl.gov.uk/Line/64/Arrivals?app_id=XXXXX&app_key=XXXXX',
                dataType: 'json',

                success: function(data){
                    $("#times").html("");

                    // declare a variable called sorted
                    var sorted = data.sort(function(a,b){
                        if (a.timeToStation > b.timeToStation){
                            return 1;
                        }
                        if (a.timeToStation < b.timeToStation){
                            return -1;
                        }
                        return 0;
                    });
                    $.each(data, function(key, value){
                        var line = value.lineName;
                        var stopName = value.stationName;
                        var destination = value.destinationName;
                        var time = value.timeToStation;
                        time = parseInt(time/60);
                        time < 1 ? time = "due" : time = time+" min";
                        $("#times").append(line+" "+stopName+"-"+destination+" "+time+"<br>");


                    });
                }
            });

        }



        function getAirQuality(){

            $.ajax({
                type: 'GET',
                url: 'https://api-ganges.tfl.gov.uk/AirQuality?app_id=XXXXX&app_key=XXXXX',
                dataType: 'json',

                success: function(data){


                    $.each(data, function(key, value){
                        console.log(data)
                        var array = [];
                        var summary = value;




                        //var text = value.currentForecast;

                        $("#air").append(summary);


                    });
                }
            });

        }



</script>
</body>
</html>

我希望get Air Quality按钮至少能在开始时显示对象内部的内容

EN

回答 1

Stack Overflow用户

发布于 2019-11-01 23:21:43

代码语言:javascript
复制
<!DOCTYPE html>   <!--  HERE IS THE ANSWER YOU ARE LOOKING FOR  -->
<html>
<head>
    <meta charset="UTF-8">
    <title>Air Qualily</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>

<div id="air">Air Quality forecast summary:</div>
<button onclick="getAirQuality();">Click to get Air Quality</button>
<script>

function getAirQuality(){

    $.ajax({
        type: 'GET',
        url: 'https://api-ganges.tfl.gov.uk/AirQuality',
        dataType: 'json',

        success: function(data){

            var summary = data.currentForecast[0].forecastText;
            //remove strange characters
            summary = summary.replace(/&lt;/g, '<');  
            summary = summary.replace(/&gt;/g, '>');
 
            console.log(summary);

            $("#air").append(summary);            
        }
    });
}

</script>
</body>
</html>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56757367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档