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. По умолчанию эта возможность отключена. Для того, чтоб ее включить, нужно передать параметр enableJsonExprFinder со значением TRUE: _helper->json($data, array('enableJsonExprFinder' => true); ]]> Для использования описанной возможности необходимо передавать массив в качестве второго аргумента. Кроме указанного параметра, в массив можно включить и другие, к примеру keepLayouts. Все параметры из этого массива будут переданы как аргумент при вызове Zend_Json::encode(). _helper->json($data, array( 'enableJsonExprFinder' => true, 'keepLayouts' => true, )); ]]>