JSON JSON быстро становится предпочтительным форматом для использования с AJAX-запросами, которые подразумевают ответы с данными. Синтаксический разбор JSON может производиться сразу на стороне клиента, что приводит к большей производительности. Помощник действий JSON выполняет несколько функций: Отключает макеты, если они включены. Опционально в качестве второго аргумента можно передавать массив опций для Zend_Json::encode(). Этот масив опций позволяет включать макеты и кодирование с использованием Zend_Json_Expr. _helper->json($data, array('enableJsonExprFinder' => true)); ]]> Отключает ViewRenderer, если он включен. Устанавливает заголовок ответа 'Content-Type' со значением 'application/json'. По умолчанию сразу возвращает ответ, не дожидаясь завершения выполнения действия. Использование помощника довольно простое - вызывайте его как метод брокера помощников или вызывайте один из его методов encodeJson() или sendJson(): _helper->json($data); // или... $this->_helper->json->sendJson($data); // либо получение данных в формате json: $json = $this->_helper->json->encodeJson($data); } } ]]> Использование макетов Если вы имеете отдельный макет для ответов JSON (возможно, для того, чтобы включить ответ JSON в некоторый контекст), то на этот случай все методы в помощнике JSON принимает второй, опциональный аргумент - флаг для включения/отключения макетов. Передача булевого значения TRUE позволит оставить макеты включенными: _helper->json($data, true); ]]> Вы можете также передавать массив через второй параметр. Этот массив может содержать набор опций, включая опцию keepLayouts: _helper->json($data, array('keepLayouts' => true); ]]> Включение кодирования через Zend_Json_Expr Zend_Json::encode() позволяет закодировывать "родные" выражения JSON с использованием объектов Zend_Json_Expr. Эта опция по умолчанию отключена. Для того, чтобы включить эту опцию, передавайте булево значение TRUE через опцию enableJsonExprFinder: _helper->json($data, array('enableJsonExprFinder' => true); ]]> При использовании этой опции вы должны передавать массив в качестве второго параметра. Это также позволяет комбинировать опции друг с другом - например, с опцией keepLayouts. Все эти опции потом передаются Zend_Json::encode(). _helper->json($data, array( 'enableJsonExprFinder' => true, 'keepLayouts' => true, )); ]]>