[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Controller-ActionHelpers-Json.xml
blob68c2065d36cf9757ffdb61e442420b14e4e1d645
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20765 -->
4 <sect3 id="zend.controller.actionhelpers.json">
5     <title>JSON</title>
7     <para>
8         <acronym>JSON</acronym> レスポンスは、<acronym>AJAX</acronym> リクエストでデータセットを受け取るときの
9         形式としてすっかり定着しました。<acronym>JSON</acronym> はクライアント側で
10         すぐにパースすることができ、すばやく実行できます。
11     </para>
13     <para>
14         <acronym>JSON</acronym> アクションヘッダは次のようなことを行います。
15     </para>
17     <itemizedlist>
18         <listitem>
19             <para>
20                 レイアウト機能が有効になっている場合はそれを無効にする。
21             </para>
22         </listitem>
24         <listitem>
25             <para>
26                 任意で、オプションの配列を
27                 <methodname>Zend_Json::encode()</methodname> の 2 番目の引数として渡す。
28                 このオプションの配列で、レイアウト機能を有効にしたり
29                 <classname>Zend_Json_Expr</classname> によるエンコードを有効にしたりする。
30             </para>
32             <programlisting language="php"><![CDATA[
33 $this->_helper->json($data, array('enableJsonExprFinder' => true));
34 ]]></programlisting>
35         </listitem>
37         <listitem>
38             <para>
39                 ViewRenderer が有効になっている場合にそれを無効にする。
40             </para>
41         </listitem>
43         <listitem>
44             <para>
45                 'Content-Type' レスポンスヘッダを '<filename>application/json</filename>' に設定する。
46             </para>
47         </listitem>
49         <listitem>
50             <para>
51                 デフォルトでレスポンスをすぐに返す。
52                 アクションの実行が終了するのを待たない。
53             </para>
54         </listitem>
55     </itemizedlist>
57     <para>
58         使い方は簡単です。ヘルパーブローカのメソッドとしてコールするか、
59         <methodname>encodeJson()</methodname> あるいは
60         <methodname>sendJson()</methodname> といったメソッドをコールするだけです。
61     </para>
63     <programlisting language="php"><![CDATA[
64 class FooController extends Zend_Controller_Action
66     public function barAction()
67     {
68         // 何らかの処理をして...
69         // JSON レスポンスを返します
70         $this->_helper->json($data);
72         // あるいは...
73         $this->_helper->json->sendJson($data);
75         // あるいは JSON を取得します
76         $json = $this->_helper->json->encodeJson($data);
77     }
79 ]]></programlisting>
81     <note>
82         <title>レイアウトの維持</title>
84         <para>
85             <acronym>JSON</acronym> レスポンスでレイアウト機能を使用したい場合
86             (いくつかの <acronym>JSON</acronym> レスポンスをひとつにまとめて処理するなど)
87             のために、<acronym>JSON</acronym> ヘルパーの各メソッドには
88             2 番目の引数が用意されています。
89             この引数はオプションのフラグで、レイアウト機能を有効あるいは無効にします。
90             <constant>TRUE</constant> を渡すと、レイアウト機能を有効なままにします。
91         </para>
93         <programlisting language="php"><![CDATA[
94 $this->_helper->json($data, true);
95 ]]></programlisting>
97         <para>
98             オプションで、2 番目の引数に配列を渡すことができます。
99             この配列には、<emphasis>keepLayouts</emphasis>
100             のオプションを含むさまざまなオプションを指定できます。
101         </para>
103         <programlisting language="php"><![CDATA[
104 $this->_helper->json($data, array('keepLayouts' => true);
105 ]]></programlisting>
106     </note>
108     <note>
109         <title>Zend_Json_Expr を使用したエンコードの有効化</title>
111         <para>
112             <methodname>Zend_Json::encode()</methodname> は、ネイティブ <acronym>JSON</acronym> 式を
113             <classname>Zend_Json_Expr</classname> オブジェクトを使用してエンコードできます。
114             このオプションはデフォルトでは無効になっています。
115             有効にするには、<emphasis>enableJsonExprFinder</emphasis>
116             オプションに <constant>TRUE</constant> を設定します。
117         </para>
119         <programlisting language="php"><![CDATA[
120 $this->_helper->json($data, array('enableJsonExprFinder' => true);
121 ]]></programlisting>
123         <para>
124             これを行いたい場合は、2 番目の引数に必ず配列を渡さなければなりません。
125             また、たとえば <emphasis>keepLayouts</emphasis> のような他のオプションと組み合わせることもできます。
126             これらすべてのオプションが <methodname>Zend_Json::encode()</methodname> に渡されます。
127         </para>
129         <programlisting language="php"><![CDATA[
130 $this->_helper->json($data, array(
131     'enableJsonExprFinder' => true, 
132     'keepLayouts'          => true,
134 ]]></programlisting>
135     </note>
136 </sect3>
137 <!--
138 vim:se ts=4 sw=4 et: