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, )) ?> ]]> Sending pre-encoded JSON By default, the JSON helper will JSON-encode the data provided to the helper's first parameter. If you wish to pass in data which has already been encoded into JSON, the third parameter needs to be set to boolean FALSE. When the second parameter is an array, disabling JSON encoding can be achived by including a encodeData key with the value of boolean FALSE: json($this->data, false, false); // Or boolean false as "encodeData" key: echo $this->json($this->data, array('encodeData' => false)); ]]>