livedoorの天気を出力したいのですが
livedoorからjson形式で天気情報を取得し、
連想配列に格納して出力しようと考えています。
下記のエラーで困っております。
お手数ですが、ご教授いただけますと幸いです。
【livedoor天気】
http://weather.livedoor.com/weather_hacks/webservice
■環境:Apache/2.4.3 (Win32) OpenSSL/1.0.1c
PHP/5.4.7
■weather.php
<?php
//livedoorからjsonで天気情報を取得
$url = "http://weather.livedoor.com/forecast/webservice/json/v1?city=410020";
$json = file_get_contents($url,true);
if ($json == false) {
echo "JSONの戻り値がfalse。";
return;
}
$obj = json_decode($json);
//取得したデータを連想配列に格納していく
$weather = array(
//今日の最高気温
"today_max" => $obj->forecasts[0]->temperature->max->celsius,
//明後日の最低気温
"day_after_tomorrow_max_celsius" => $obj->forecasts[2]->temperature->max->celsius,
//明後日の最低気温
"day_after_tomorrow_min" => $obj->forecasts[2]->temperature->min->celsius
);
echo var_dump($obj);
echo $weather['today_max'];//都市を変え最高気温がある場合だと19℃とか出力される
echo $weather['today_max'];//最高気温がNULLだと下記エラーが出力される
?>
■weather.phpを実行時のエラー
Notice: Trying to get property of non-object in C:\xampp\htdocs\study\weather.php on line 19
(19行目は上記、今日の最高気温)
Notice: Trying to get property of non-object in C:\xampp\htdocs\study\weather.php on line 32
(32行目は上記、明後日の最高気温)
Notice: Trying to get property of non-object in C:\xampp\htdocs\study\weather.php on line 33
(33行目は上記、明後日の最高気温)
---------------
最高気温がnullだった場合でもエラーが出ないようにしたいです。
$obj=json_decode($json);
$objは連想配列、$weatherに格納したいと考えてます。
自分で調べた結果、is_nullやemptyで回避とありましたが
解決には至りませんでした。
■参考URL
http://nanoappli.com/blog/archives/810
以上、宜しくお願い致します。
お礼
あなたの言うとおり基本的に雨は降らず一日中暑かったです。雨が降ると激しく屋根が落ちないか心配でした。