视图助手 – JSON(View Helpers – JSON)
在创建返回JSON的视图时,设置合适的响应报头是很重要的。JSON 视图助手做的就是这样的工作。此外,默认情况下,它会禁用布局(如果当前已启用),是因为布局通常没有使用 JSON 响应。
JSON 助手设置如下报头:
1
Content-Type: application/json
大多数 AJAX 库在解析响应以便处理内容时都会查找此报头。
JSON助手使用非常简单:
1
<?php echo $this->json($this->data) ?>
JSON 助手中的每个方法都接受可选的第二个参数。第二个参数可以是启用或禁用布局的布尔标识,或者是有选项组成的数组,这些选项会被传递给 Zend\Json\Json::encode()方法用于内部编码。
为了保持布局,第二个参数需要为布尔 TRUE。当第二个参数是一个数组时,要想实现保持布局,可通过引入 keepLayouts 键,其值为布尔 TRUE。
1 2 3 4 5
// Boolean true as second argument enables layouts: echo $this->json($this->data, true); // Or boolean true as "keepLayouts" key: echo $this->json($this->data, array('keepLayouts' => true));
Zend\Json\Json::encode 允许使用 Zend\Json\Expr 对象编码原生的 JSON 表达式。此选项默认被禁用。启用此项,传入布尔 TRUE 到选项数组的 enbaleJsonExpreFinder键:
1 2 3 4
<?php echo $this->json($this->data, array( 'enableJsonExprFinder' => true, 'keepLayouts' => true, )) ?>