2010-07-22 60 views
3

我想通過使用YQL jQuery插件(http://plugins.jquery.com/project/jquery-yql)排除以下代碼通過YQL geo.places table一些JSON結果迭代;迭代通過YQL JSON結果通過javascript geo.places

$.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,name,country,admin1等)

本質上我想......

  1. 輸入一個郵政編碼,以YQL

  2. 違背用戶結果驗證了城市/州/國家提交的數據

    從結果
  3. 更新經度和緯度領域

謝謝!

回答

3

如果雅虎返回單個place,則它屬於results,而不是一系列地點。如果它不是數組,則不能迭代。所以測試它是否是一個數組;如果不是,請將其設爲1:

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