JSON ヘルパー
JSON を返すビューを作成する際に大事なのは、
適切なレスポンスヘッダを設定することです。
JSON ビューヘルパーは、まさにその作業を行います。
さらに、デフォルトでレイアウト機能を無効にします (現在有効である場合)。
JSON レスポンスでは通常レイアウト機能は使わないからです。
JSON ヘルパーは次のようなヘッダを設定します。
たいていの AJAX ライブラリは、
レスポンスでこのヘッダを見つけると適切に処理してくれます。
JSON ヘルパーの使用法は、このように非常に単純です。
json($this->data) ?>
]]>
レイアウトの維持、およびZend_Json_Expr によるエンコードの有効化
JSON ヘルパーの各メソッドには、オプションで 2 番目の引数を指定できます。
この 2 番目の引数は、レイアウト機能の有効/無効を指定する boolean フラグか
あるいは Zend_Json::encode()
に渡して内部的なデータのエンコードに使用するオプションの配列となります。
レイアウトを維持するには、2 番目のパラメータを
TRUE としなければなりません。
2 番目のパラメータを配列ににする場合にレイアウトを維持するには、配列に
keepLayouts というキーを含め、その値を
TRUE にします。
json($this->data, true);
// あるいは、キー "keepLayouts" に true を指定します
echo $this->json($this->data, array('keepLayouts' => true));
]]>
Zend_Json::encode() は、ネイティブ JSON 式を
Zend_Json_Expr オブジェクトを使用してエンコードできます。
このオプションはデフォルトでは無効になっています。
有効にするには、enableJsonExprFinder
オプションに TRUE を設定します。
json($this->data, array(
'enableJsonExprFinder' => true,
'keepLayouts' => true,
)) ?>
]]>