我正在尝试使用YQL jQuery插件(YQL geo.places table)通过以下代码对http://plugins.jquery.com/project/jquery-yql的一些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返回单个place,则它是results的属性,而不是位置数组。如果不是数组,则无法迭代。因此,测试它是否为数组;如果不是,则使其成为一个:

    $.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);
            });
        });
    });
    

    关于javascript - 通过javascript遍历YQL JSON会在geo.places中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3312710/

    10-15 03:04