OpenWeatherMapから欲しい都市や座標の気象JSONデータを習得する1

 OpenWeatherMapは気象データを習得出来る。データはJSON,XML,Htmlで得られるが、今回はJSON形式の3時間毎5日分のデータを習得する。
5 day weather forecast - OpenWeatherMap

 先ずは得たい都市を探す。tokyoで探すとこのページが出る。Weather forecast - OpenWeatherMap

 都市コードはid=1850147と判ったので、ここのJSONデータを習得する。
http://api.openweathermap.org/data/2.5/forecast?id=1850147&appid=2de143494c0b295cca9337e1e96b00e0

 
 このままでは判りにくいので、今回はChromeブラウザのプラグインでJSONviewをインストールするとこのようになる。

 JSONデータのフォーマットの要素は、オブジェクトと呼ばれる{}に囲まれた中に、順序付けされていない要素が収納されている。要素は他のセットとはカンマで区切られる。先ほどのJSONデータでは
{city:{},cod:"200",message:0.0211,cnt:40,list:}
 となっている。cityはオブジェクト、codは文字列の200、messageは数値の0.0211、cntは数値の40、listは配列、という要素が格納されている。cityオブジェクトの中身は以下であり、オブジェクト内に更に階層的に要素が入っている。
[f:id:y_takeuchi:20151129081510j:image]

 配列はに囲まれた、順序付けされた要素がカンマで区切られて格納される。listの中身は以下の感じ。このlistの中には、オブジェクトが格納され、これが3時間毎の気象データだ。


 JSONデータの要素はオブジェクト{}や配列に格納され、オブジェクト{}の要素が配列である場合も在れば、配列の要素がオブジェクト{}の場合もある。
 オブジェクト{}と配列
の違いは、要素が順序付けされているか否かで、配列はデータを取り出す際は、アドレスを指定して取り出す。上のlist配列の場合は[{オブジェクト1},{オブジェクト2},{オブジェクト3},・・・]というように、オブジェクト{}がカンマ区切りで並んでいるが、これが[文字列,値,{オブジェクト1},文字列・・・]という場合もある。先頭の要素を得たい場合は、最初のアドレスを指定すればいい。それに対してオブジェクト{}は順序付けされていない。オブジェクト{}内には要素が、{要素1の名前:要素1,要素2の名前:要素2,・・・・}という風に並び、値を得たい場合は、「要素の名前」を指定する。