JSON Les réponses JSON sont les réponses de choix dans une architecture de type AJAX qui attend des données structurées. JSON peut être immédiatement interprété du coté du client, ce qui rend la tâche plus simple et plus rapide. L'aide d'action JSON effectue plusieurs traitements : Désactive les layouts si elles sont activées. Optionnellement, un tableau d'options en second argument de Zend_Json::encode(). Ce tableau d'options permet l'activation des layouts et l'encodage en utilisant Zend_Json_Expr. _helper->json($data, array('enableJsonExprFinder' => true)); ]]> Désactive le ViewRenderer s'il est activé. Envoie à la réponse un en-tête 'Content-Type' à application/json. Par défaut, retourne immédiatement la réponse, sans attendre la fin de l'exécution de l'action. Son utilisation est toute simple, appelez le depuis le gestionnaire d'aides (Broker), ou appelez une de ses méthodes encodeJson() ou sendJson() : _helper->json($data); // ou... $this->_helper->json->sendJson($data); // ou retourne la chaine json: $json = $this->_helper->json->encodeJson($data); } } ]]> Conserver les Layouts Si vous avez besoin des layouts séparés pour les réponses JSON, pour par exemple générer vos réponses JSON dans un contexte particulier, chaque méthode de l'aide JSON accepte un second paramètre booléen. A TRUE, les layouts resteront activées : _helper->json($data, true); ]]> Optionnellement, vous pouvez fournir un tableau en tant que second paramètre. Ce tableau peut conftenir une variété d'options, incluant l'option keepLayouts : _helper->json($data, array('keepLayouts' => true); ]]> Activer l'encodage en utilisant Zend_Json_Expr Zend_Json::encode() permet l'encodage des expressions JSON natives en utilisant des objets Zend_Json_Expr. Cette option est désactivée par défaut. Pour l'activer, fournissez la valeur booléenne TRUE à l'option enableJsonExprFinder : _helper->json($data, array('enableJsonExprFinder' => true); ]]> Si vous souhaitez faire ceci, vous devez un tableau en tant que second argument. Ceci vous permet aussi de combiner avec les autres options, comme l'option keepLayouts. Toutes ces options sont alors fournies à Zend_Json::encode(). _helper->json($data, array( 'enableJsonExprFinder' => true, 'keepLayouts' => true, )); ]]>