2013年9月23日

CakePHPでjson形式でレスポンスする方法

  サーバーサイドのアプリケーションをCakePHPで作成した、クライアントに(Androidだったり、ブラウザだったり)Json形式でデータを返却する時のコーディング方法について説明。
 実に簡単!


コーディング例(コントローラクラスで記述)
  1. // Json形式にするデータ
  2. $data = array('k1'=>'d1', 'k2'=>'d2', 'k3'=>'d3', 'k4'=>'d4', 'k5'=>'d5');

  3. // Json形式で返却する
  4. $this->set('json_data', $data);
  5. $this->viewClass='Json';
  6. $this->set('_serialize', 'json_data');
返却結果
 [{"k1":"d1", "k2":"d2", "k3":"d3", "k4":"d4", "k5":"d5"}] 
  • 2行目:Json形式として返却するデータを配列や、連想配列で作成する。Modelからデータを取得してもなんでもOK
  • 5行目:Json形式で返却するデータをViewにセットする。(複数ある場合は、必要分セットする)
  • 6行目:Viewを編集するクラスを"Json"に変更する(setしたデータをJson形式にしてくれる便利)
  • 7行目:キー名に"_serialize"を使用して、setメソッドでセットしたキー名を設定する。これで、Json形式のデータにして返却してくれます。
    第二引数を配列にして複数のキー名を指定することもできます。
    例)$this->set('_serialize', array('json_data', 'json_data2');
    配列にした場合、指定したキー名は、Jsonデータのキー名になります。

公式サイトの説明
JSONとXMLビュー


参考図書


0 件のコメント:

コメントを投稿