(77) JSONファイルを読み込む

投稿者: | 2022年3月26日

1,151 views

この記事は最終更新から 1055日 が経過しています。

1. やりたいこと

PHPプログラムで JSONファイルをロードし、ファイルの中身を連想配列として変数に格納したい。

2. やってみる

(1) 基本

mydata.json

{
  "name": "DOGROW",
  "age": "43"
}

index.php

<html lang="ja">
  <body>
<?php
$jsonData = file_get_contents('./mydata.json');
$jsonData = mb_convert_encoding($jsonData, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$data = json_decode($jsonData, true);
echo $data['name'].'<br>';
echo $data['age'];
?>
  </body>
</html>

実行結果はこちら。
https://www.dogrow.net/php/sample/00077/case1

(2) 応用#1 : 配列

配列は [ ] で囲むこと。
ついつい { } で囲みそうになってしまうが、これはオブジェクトを括るときに使うものだ。

最初は間違えてしまい json_decode() が null を返し続け、「あれっ」と 1時間も迷走してしまった。

mydata.json

[
  {
    "name": "DOGROW",
    "age": "43"
  },
  {
    "name": "UITRON",
    "age": "38"
  }
]

index.php

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>BLOG No.77 Case2</title>
  </head>
  <body>
<?php
$jsonData = file_get_contents('./mydata.json');
$jsonData = mb_convert_encoding($jsonData, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$data = json_decode($jsonData, true);

foreach($data as $v){
  echo '<p>'.$v['name'].' : '.$v['age'].'</p>';
}
?>
  </body>
</html>

実行結果はこちら。
https://www.dogrow.net/php/sample/00077/case2


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)