<< ランダムイメージ | main | はてなブックマークエントリー情報取得API >>

2007.06.29 Friday

JSONのパース

ツクモAPIが公開されたので、仕様を見てみたら、
TSUKUMO WebAPI 第一弾のCategory APIを公開します
なんと!!
XMLじゃなくて、JSON&YAMLでした。
Javascriptから手軽に使ってね、
ってことなんでしょう。

ちなみに、JSONってのは、
JavaScript Object Notation
の省略形。

YAMLってのは何なんだ?というのは置いといて、
PHPでは、JSONを手軽に扱えるようにはなっていないので、調べてみました。

Yahoo検索の地図関連のAPIもI/FはJSONなので、調べておいても損はないかな、と。

--

--

■PEARのServices/JSON
「Services_JSON」の提案
というパッケージがあるので、これを解凍し、
JSON.PHPをPEARインストールディレクトリのServicesディレクトリにコピー
(当然、PEARが使える状態になっていることが前提)

■Services_JSONの使い方
JSON.phpのソースファイルを見れば、使い方が書いてあるので、そのままでOKです。

■サンプル ということで、以下のように書けば、JSONのパースが出来ます。 (ツクモAPIでカテゴリIDに液晶モニタを指定した例)
require 'Services/JSON.php';
$categoryID = '101510000000000';
$req = 'http://shop.tsukumo.co.jp/dir/' . $categoryID . '.json' . '?sort=price';
$input = file_get_contents($req);
$json = new Services_JSON();
$value = $json->decode($input);

print('総数:' . $value->pager->total_entries . '<br><br>');

foreach($value->items as $items){
  print '商品名:' . $items->name . '<br>';
  print '概要:' . $items->summary . '<br>';
  if( !empty($items->specs) ){
    print '仕様:<br>';
    print '<table border="1">';
    foreach($items->specs as $specs){
      print '<tr><td>' . $specs->name . '</td><td>' . $specs->value . '</td></tr>';
    }
    print '</table>';
  }
  print '<br>';
}
こんな感じで、simplexmlと同じように扱えるので、とっても簡単。 実際に使う場合は、file_get_contentsのところは、キャッシュに対応した関数を自分で用意して、それに差し替えてください。

--

テクノラティお気に入りに追加する

Comments

コメント入力は停止しています

海外からと思われるコメントスパムが横行しているため、全記事のコメント入力を停止しています。メッセージのある方は、ホームページの一番下に連絡欄がありますので、そちらからお願いします。

Trackback URL

トラックバックする場合は、
トラックバック元の記事にこのエントリへのリンクを記載してください
このエントリのタイトル「JSONのパース」
このエントリのリンク「http://kommy.s254.xrea.com/blog/log/eid38.html」