Ajaxの真価はWebサービス連携にありWeb 2.0で変わるWebプログラミングの常識(2/4 ページ)

» 2006年08月23日 08時00分 公開
[大澤文孝,ITmedia]

JSONを使ってデータをやり取りする

 実例を見てみよう。ここでは第2回目でAjaxのサンプルとして示したリスト1およびリスト2を、JSONを用いたものに変更してみる(関連記事)

 サーバ側からJSON形式のデータを返すには、何らかのJSONライブラリを用いることになる。JSONライブラリは、さまざまな言語用のものが存在し、その一覧を参照することもできる(関連リンク)

 今回は、その代表的な一つであるPHP用の「JSON-PHP」を用いることにしよう(関連リンク)。このJSON-PHPは、pear.php.netからダウンロードすることができる(関連リンク)

 JSON-PHPは、その名の通りPHP言語で書かれたものであり、「JSON.php」という単一ファイルである。実行する場合にはほかのライブラリに依存するものはない。ダウンロードして配置するだけで、次のようにコード内で指定すればすぐに利用可能だ。


require('JSON.php');

 この連載の第2回目に紹介したXML形式のデータとして返すサーバサイドのcalc.php(前回のリスト2)を、JSONデータとして返すように変更したものが次に示すリスト3だ。

リスト3■サーバサイドのJSON版calc.php

<?php
require('JSON.php');
$value1 = $_POST['value1'];
$value2 = $_POST['value2'];
$result = array();
$result['add'] = $value1 + $value2;
$result['diff'] = $value1 - $value2;
header("Content-Type: text/json");
$json = new Services_JSON();
print $json->encode($result);
?>

 リスト3では、戻り値となるデータを配列として構成している。

戻り値データを配列として構成する処理部

$result = array();
$result['add'] = $value1 + $value2;
$result['diff'] = $value1 - $value2;

 そしてJSONライブラリを使って、JSONデータに変換してクライアントへと返す。

JSONデータでクライアントに返す処理部

header("Content-Type: text/json");
$json = new Services_JSON();
print $json->encode($result);

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ