PHPでJSONを扱うサンプル
PHPでオブジェクトをJSONに変換する方法
json_encode(データ,(任意でオプション定数))
を使うと良い。
JSON関数のオプションには以下のようなものがある。
オプション定数 | 意味 |
---|---|
JSON_HEX_TAG | タグをエンコードする |
JSON_HEX_QUOT | ダブルクォートをエンコードする |
JSON_HEX_AMP | &をエンコードする |
JSON_HEX_APOS | シングルクォートをエンコードする |
JSON_FORCE_OBJECT | 配列をオブジェクトとして扱う |
サンプルはこちら。
<?php $js = array(1,2.0, 'foo' => 'bar'); echo json_encode($js),PHP_EOL; $js = new DateTime(); echo json_encode($js), PHP_EOL; class Person { public $age = 28; public $job = "programmer"; public $interest = "php"; } $js = new Person(); echo json_encode($js), PHP_EOL;
これにアクセスすると、ブラウザには以下のように表示される。
{"0":1,"1":2,"foo":"bar"} {"date":"2013-07-08 14:40:57","timezone_type":3,"timezone":"Europe\/Berlin"} {"age":28,"job":"programmer","interest":"php"}
ついでに、上記のJSONをテキストファイルに出力してみる。
PHPでJSONをファイルに出力する
<?php $js = array(1,2.0, 'foo' => 'bar'); echo json_encode($js),PHP_EOL; $js = new DateTime(); echo json_encode($js), PHP_EOL; class Person { public $age = 28; public $job = "programmer"; public $interest = "php"; } $js = new Person(); echo json_encode($js), PHP_EOL; $filename = './json.txt'; if (!file_exists($filename)) { touch($filename); } else { echo ('すでにファイルが存在しています。file name:' . $filename); } if (!file_exists($filename) && !is_writable($filename) || !is_writable(dirname($filename))) { echo "書き込みできないか、ファイルがありません。",PHP_EOL; exit(-1); } $fp = fopen($filename,'a') or dir('ファイルを開けません'); fwrite($fp, sprintf(json_encode($js))); fclose($fp);
これを実行すると、このPHPファイルと同じディレクトリに「json.txt」というテキストファイルができる。
中には、
{"age":28,"job":"programmer","interest":"php"}
と書かれている。
では、出力したファイルを別のPHPファイルで読み込んでみる。
PHPでファイルの内容を読み込む
ファイルの内容を文字列として扱うには
file_get_contents($filename);
を使う。このfile_get_contentsはファイルを一度に読み込んで変数に代入するため、サイズが巨大なファイルを読み込むとメモリを大量に消費してしまうことに注意する。
それでは、さきほど出力したJSONオブジェクトをファイルから取り出し、decodeするところまでやってみる。
<?php $filename = './json.txt'; $json = file_get_contents($filename); echo $json; $decoded = json_decode($json); echo '<br/>'; echo $decoded->age; echo '<br/>'; echo $decoded->job; echo '<br/>';
これで、ブラウザには以下のように出力される。
{"age":28,"job":"programmer","interest":"php"} 28 programmer
勉強した本
- 作者: 小川雄大,柄沢聡太郎,橋口誠
- 出版社/メーカー: 技術評論社
- 発売日: 2010/11/12
- メディア: 大型本
- 購入: 32人 クリック: 1,065回
- この商品を含むブログ (59件) を見る
パーフェクトシリーズの例に漏れず、素晴らしい本。
セキュリティの解説もあるし、簡単なウェブアプリケーションも作れるようになる本。
感謝のプログラミング
今回で感謝のプログラミングは【514時間目】
10000時間まで、あと【9486時間】
密かに英語でプログラミングの勉強記事も書いているので、その分も時間に含めた。
英語がニガテだからこそ、英語で何かを書いてみる。