資料:如何解決跨域訪問數據問題
天氣接口:http://t.weather.sojson.com/api/weather/city/101240301 (后面的數字改成其他Citycode的值就可以得到其他城市的天氣json)
Citycode:https://www.cnblogs.com/shangrao/p/12862269.html
獲取json數據:https://www.cnblogs.com/shangrao/p/12861904.html
以上資料搞定,就可以開始獲取我們的接口的天氣信息了
對於我們這個小白來說,動態的獲取天氣信息,可以進行三步走。
二、.獲取天氣json。不要被這么多數據嚇到,剛開始我們可以把這些數據放到自己項目里,整理代碼格式,這樣我們就清晰了。
格式化之后,發現是這樣的一個結構 獲取json文件的值方法,可以看上面的鏈接
HTML頁面
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <p>當前城市:<span></span></p> <p>今天溫度:<span></span></p> <p>明天溫度:<span></span></p> <p>PM2.5:<span></span></p> <script type="text/javascript"> function tq(datas){ // 使用js方法在span輸入天氣信息。參數datas是json對象。 document.getElementsByTagName("span")[0].innerHTML=datas.cityInfo.city; document.getElementsByTagName("span")[1].innerHTML=datas.data.wendu+"°C"; document.getElementsByTagName("span")[2].innerHTML=datas.data.forecast[0].low+"~"+datas.data.forecast[0].high; document.getElementsByTagName("span")[3].innerHTML=datas.data.wendu; } </script> <script src="bb.php?_jsonp=tq" type="text/javascript" charset="utf-8"></script> </body> </html>
bb.php頁面
<?php $callback = $_GET['_jsonp'];//得到函數名稱(tq) $json = file_get_contents('http://t.weather.sojson.com/api/weather/city/101240301');//PHP獲得文本方法 $arr=json_decode($json, true); //json字符道串轉換成關聯數組 echo $callback."(".json_encode($arr).")";//json_encode($arr)將數組轉化成json格式。調用回調函數(tq) ?>
以上是寫了固定的 城市編碼 101240301 上饒市的值
運行結果
三、動態的顯示出某個城市的天氣
........
先暫時不寫了,吃飯去了,下次想到就去寫吧