今回は、コロナウイルスのJSONのデータを取得して
データをブラウザに表示していこうと思う。
今回、使用するJSONは、以下の物になる。
「コロナウイルスの県ごとの感染数、死者数」
url↓
https://covid19-japan-web-api.now.sh/api/v1/prefectures
[
{
"id": 1,
"name_ja": "北海道",
"name_en": "Hokkaido",
"lat": 43.46722222,
"lng": 142.8277778,
"cases": 176,
"deaths": 7
},
{
"id": 2,
"name_ja": "青森",
"name_en": "Aomori",
"lat": 40.78027778,
"lng": 140.83194440000003,
"cases": 8,
"deaths": 0
},
...
このJSONデータを取得していこうと思う。
まず、JSONデータをデコードしていく。
<?php
$url="https://covid19-japan-web-api.now.sh/api/v1/prefectures";
$json=file_get_contents($url);
$arr=json_decode($json,true);
それぞれ解説していく。
$url="https://covid19-japan-web-api.now.sh/api/v1/prefectures";
変数$urlに先ほど掲載させてurlを入れ込む。
$json=file_get_contents($url);
$arr=json_decode($json,true);
次にfile_get_contents()関数に$urlを変数を入れる。
file_get_contents()は、ファイルなどを組み込む際に使う。
その後、json_decode()により
json形式のファイルから元の形式に変換する。
また、第二引数のtrueは、
falseにするとオブジェクトを返し、
trueにすると連想配列形式のオブジェクトを返します。
上記のコーディングによりjsonの取得が完了した。
次に取得したデータをブラウザ上に表示する。
foreach($arr as $data){
$ja= "都道府県名 ".$data['name_ja']."\n"."<br>".PHP_EOL;
$cases= "発生件数 ".$data['cases']."人\n"."<br>".PHP_EOL;
$deaths= "死者数 ".$data['deaths']."人\n"."<br>".PHP_EOL;
$pcr= "pcr件数 ".$data['pcr']."人\n"."<br>".PHP_EOL;
$virusData= array(
$ja,$cases,$deaths,$pcr,
);
foreach文を使用して、$arrを$dataに入れ、
それぞれのjsonのデータを
$ja= "都道府県名 ".$data['name_ja']."\n"."<br>".PHP_EOL;
のように都道府県名、jsonの要素名、改行のエスケープシーケンス、
HTMLの改行タグ、PHP改行コードを記載している。
そして、それらのデータを一つの$virusDataという変数に配列にて格納する。
最後に、
echo implode('',$virusData);}?>
配列の要素を結合して文字列にするimplode関数を使用することで以下のように表示される。
全コードは、以下の通りである。
<?php
$url="https://covid19-japan-web-api.now.sh/api/v1/prefectures";
$json=file_get_contents($url);
//$json=mb_detect_encoding($json,'UTF-8','ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr=json_decode($json,true);
foreach($arr as $data){
$ja= "都道府県名 ".$data['name_ja']."\n"."<br>".PHP_EOL;
$cases= "発生件数 ".$data['cases']."人\n"."<br>".PHP_EOL;
$deaths= "死者数 ".$data['deaths']."人\n"."<br>".PHP_EOL;
$pcr= "pcr件数 ".$data['pcr']."人\n"."<br>".PHP_EOL;
$virusData= array(
$ja,$cases,$deaths,$pcr,
);
echo implode('',$virusData);
}
?>
完成系としては、jsonから取得したデータをgoogle sheet apiを使用して
更新出来るようなプログラムを作成したい。
また、プログラミング初心者なので、コードのフィードバック頂けたら嬉しいです。
よろしくお願い致します。