HTTP GET リクエストを送信すると、天気予報を提供するこの無料の天気 API を見つけました。天気予報は JSON で配信されます。リクエストは次のようになります。
JSON 形式の例:
都市名による検索: api.openweathermap.org/data/2.5/weather?q=London,uk
地理座標による検索: api.openweathermap.org/data/2.5/weather?lat=35&lon=139検索都市ID別: api.openweathermap.org/data/2.5/weather?id=2172797
したがって、返される応答は、いくつかの変数が配置されている URL の末尾によって明らかに定義されます。
jQuery 関数 getJSON() を使用して、HTTP GET 要求で取得したテキスト ファイルからオブジェクトを作成できること、また変数を使用して URL を変更できることを確認しました。これを行う例:
var person = "john";
$.getJSON("https://graph.facebook.com/" + person, function(person){
$.each(person, function(key, value){
document.write(key+": "+value+"<br />");
});
});
出力を与える
id: 779695190
first_name: John
gender: male
last_name: Chan
locale: en_US
name: John Chan
username: John
ただし、天気 API でこれを使用しようとすると、機能しません。出力がありません。(簡単にするために、ここでは url 変数なしで実行します。) 以下のコードは、私が考えた方法です (しかし、明らかにそうではありません)。
$.getJSON("api.openweathermap.org/data/2.5/weather?q=London,uk", function(forecast){
var temperature = forecast.main.temp;
document.write(temperature);
});
ここで予測の JSON 構造を参照してください: http://bugs.openweathermap.org/projects/api/wiki/Weather_Data
基本的に私の質問は次のとおりです: url-variables を weather-api-urls に追加するにはどうすればよいですか (そして、リクエストが都市名または座標の両方であることを確認します)。また、サーバーからデータを取得したら、取得したデータにどのようにアクセスすればよいでしょうか?