1 <sect3 id="zend.controller.actionhelpers.json">
5 当处理期望数据表响应的 AJAX 请求,JSON 响应迅速变成选择的响应。JSON 可以立即在客户端被解析,从而快速执行。
14 如果布局是打开(enabled)的,则关闭(disable)它。
18 如果视图解析器(ViewRenderer)是打开的,则关闭它。
22 设置 'Content-Type' 响应头为 'application/json'。
26 缺省地,不需要等待动作执行完成,立即返回响应。
31 用法很简单:或者把它作为助手代理的方法来调用,或者调用 <code>encodeJson()</code> 和 <code>sendJson()</code> 方法的其中之一:
34 <programlisting role="php"><![CDATA[
35 class FooController extends Zend_Controller_Action
37 public function barAction()
39 // do some processing...
40 // Send the JSON response:
41 $this->_helper->json($data);
44 $this->_helper->json->sendJson($data);
46 // or retrieve the json:
47 $json = $this->_helper->json->encodeJson($data);
54 <title> 保持布局 (Keeping Layouts)</title>
57 如果你为 JSON 响应有分离的布局 - 也许把 JSON 封装到一些上下文 - 在 JSON 助手的每个方法接受第二个可选的参数:打开或关闭布局的 flag ,传递一个布尔 <code>true</code> 值将使布局保持打开:
60 <programlisting role="php"><![CDATA[
61 class FooController extends Zend_Controller_Action
63 public function barAction()
65 // Retrieve the json, keeping layouts:
66 $json = $this->_helper->json->encodeJson($data, true);