【问题标题】:Iterating through YQL JSON results in geo.places via javascript遍历 YQL JSON 会通过 javascript 生成 geo.places
【发布时间】:2010-07-22 19:39:17
【问题描述】:

我正在尝试使用 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:[object][object]”、“1:[object][object]”等(对于​​每个地点)。每当只有一个地点结果时,警报将吐回仅一个地点的所有名称和值(woeid、名称、国家/地区、admin1 等)

基本上我想...

  1. 在 YQL 中输入邮政编码

  2. 根据用户提交数据的结果验证城市/州/国家/地区

  3. 从结果中更新纬度和经度字段

谢谢!

【问题讨论】:

    标签: javascript jquery json yql


    【解决方案1】:

    如果 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);
            });
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      相关资源
      最近更新 更多