JSONをPHPで扱ってみる。

JSONというデータフォーマットがありますな。JSONって何ぞや...というときは例えば、

  → [Think It] 【これならわかる!JavaScript/Ajax】JSONなんて怖くない!

と、こんな記事を読んでみたら大体わかります。まあ簡単にいうと、データフォーマットの一種です。

で、上の記事の中にもありますが、世の中にはデータをJSONで返してくれるWeb APIがあって、JSONPという手法を使えばお手軽に外部サイトからデータを得ることが出来るのですな。

JavaScriptで、JSONデータを処理するコールバック関数を作っておいて...
function hoge( jsonData ){
     /* 引数 jsonData に、相手から渡されたJSONデータが入ります */
     /* あとはこのデータを煮るなり焼くなり出力するなり */
}

HTMLの方ではこんな感じで相手を呼ぶ。
<script type="text/javascript" src="http://url.of.web.api?パラメータ&callback=hoge">

関数hogeの引数にJSON形式のデータが渡されます。
これが基本形。

PHPで、相手のWeb APIを叩いてJSON形式のデータを受け取る時には...
<?php
   $json = file_get_contents("http://url.of.web.api?パラメータ");
?>

これだけ。$jsonにJSON形式のデータが入ります。
あるいはfile_get_contentsの代わりにHTTP_Requestを使っても良いです。エラー処理などしていませんが、こんな感じ。
<?php
   require_once('HTTP/Request.php');

   $request =new HTTP_Request( 'http://url.of.web.api?パラメータ' );
   $result = $request->sendRequest(); //リクエスト送信

   $json = $request->getResponseBody(); //レスポンスの本文を取得
?>

JSON形式のデータをPHPのオブジェクト、または連想配列に変換するときは...
<?php
   $data = json_decode( $json ); //オブジェクトを返す
   $data = json_decode( $json , true ); //連想配列を返す
?>

後はお好きなように。


カテゴリ: