3

我正在尝试使用 YQL jQuery 插件 ( http://plugins.jquery.com/project/jquery-yql ) 使用以下代码对YQL geo.places 表中的一些 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. 从结果中更新纬度和经度字段

谢谢!

4

1 回答 1

3

如果 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);
        });
    });
});
于 2010-07-22T23:36:24.240 回答