JSONをPHPで扱ってみる。
JSONというデータフォーマットがありますな。JSONって何ぞや...というときは例えば、
→ [Think It] 【これならわかる!JavaScript/Ajax】JSONなんて怖くない!
と、こんな記事を読んでみたら大体わかります。まあ簡単にいうと、データフォーマットの一種です。
で、上の記事の中にもありますが、世の中にはデータをJSONで返してくれるWeb APIがあって、JSONPという手法を使えばお手軽に外部サイトからデータを得ることが出来るのですな。
JavaScriptで、JSONデータを処理するコールバック関数を作っておいて...
function hoge( jsonData ){
/* 引数 jsonData に、相手から渡されたJSONデータが入ります */
/* あとはこのデータを煮るなり焼くなり出力するなり */
}
/* 引数 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 = 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(); //レスポンスの本文を取得
?>
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 ); //連想配列を返す
?>
$data = json_decode( $json ); //オブジェクトを返す
$data = json_decode( $json , true ); //連想配列を返す
?>
後はお好きなように。
コメント