编程语言
首页 > 编程语言> > 通过javascript遍历YQL JSON会在geo.places中

通过javascript遍历YQL JSON会在geo.places中

作者:互联网

我正在尝试使用以下代码使用YQL jQuery插件(http://plugins.jquery.com/project/jquery-yql)进行故障排除,从YQL geo.places table遍历一些JSON结果;

$.yql("select * from geo.places where text=#{placename}", { 
        placename: '90210' 
    }, 
    function(data) {
        var Results = data.query.results;
        $.each(Results.place, function(name, value) {
            alert(name + ":" + value);
        });
    });
});

除非结果中有多个“位置”,否则警报将吐出“ 0:[对象] [对象]”,“ 1:[对象] [对象]”等(针对每个位置).只要只有一个地方的结果,警报就会吐出一个地方的所有名称和值(woeid,名称,国家/地区,admin1等).

本质上我想…

>输入邮政编码到YQL
>根据用户提交的数据从结果中验证城市/州/国家
>根据结果更新纬度和经度字段

谢谢!

解决方法:

如果Yahoo返回单个位置,则它是结果的属性,而不是位置数组.如果不是数组,则无法迭代.因此,测试它是否为数组;如果不是,则使其成为一个:

$.yql("select * from geo.places where text=#{placename}", { 
        placename: '90210' 
    }, 
    function(data) {
        var Places = data.query.results.place;
        if (!Places.length) Places = [Places];
        $.each(Places, function(index, place) {
            alert(index + ":" + place.name);
        });
    });
});

标签:yql,json,javascript,jquery
来源: https://codeday.me/bug/20191209/2097655.html