JSON JSON Antworten sind die Antworten der Wahl wenn mit AJAX Anfragen gearbeitet wird die Dataset Antworten erwarten; JSON kann sofort auf Seite des Clienten geparst werden, was zu schneller Ausführung führt. Der JSON Action Helfer macht verschiedene Dinge: Layouts auschalten wenn sie aktuell aktiviert sind. Optional ein Array von Optionen als zweites Argument an Zend_Json::encode() übergeben. Dieses Array von Optionen erlaubt es Layouts und Kodierungen einzuschalten indem Zend_Json_Expr verwendet wird. _helper->json($data, array('enableJsonExprFinder' => true)); ]]> Den ViewRenderer ausschalten wenn er aktiviert ist. Den 'Content-Type' Antwort Header auf 'application/json' setzen. Standardmäßig, die Antwort sofort zurückgeben, ohne darauf zu warten das die Aktion die Ausführung beendet. Die Verwendung ist einfach: Entweder als Methode des Helfer Brokers aufrufen, oder eine der Methoden encodeJson() oder sendJson() aufrufen: _helper->json($data); // oder... $this->_helper->json->sendJson($data); // oder das JSON empfangen: $json = $this->_helper->json->encodeJson($data); } } ]]> Layouts behalten Wenn man ein separates Layout für JSON Antworten hat -- möglicherweise um die JSON Antworten in einer Art Kontext zu wrappen -- akzeptiert jede Methode im JSON Helfer ein zweites, optionales Argument: Ein Flag um Layouts zu aktivieren oder deaktivieren. Die Übergabe eines boolschen TRUE Wertes hält Layouts aktiviert: _helper->json($data, true); ]]> Optional kann ein Array als zweiter Parameter übergeben werden. Dieses Array kann eine Vielzahl von Optionen enthalten, inklusive der keepLayouts Option: _helper->json($data, array('keepLayouts' => true); ]]> Kodierung einschalten durch Verwendung von Zend_Json_Expr Zend_Json::encode() erlaubt die Kodierung von nativen JSON Ausdrücken indem Zend_Json_Expr Objekte verwendet werden. Diese Option ist standardmäßig ausgeschaltet. Um diese Option einzuschalten muß ein boolscher TRUE Wert an die enableJsonExprFinder Option übergeben werden: _helper->json($data, array('enableJsonExprFinder' => true); ]]> Wenn man das durchführen will, muss man ein Array als zweite Option übergeben. Das erlaubt es auch andere Optionen, wie zum Beispiel die keepLayouts Option, zu kombinieren. Alle diese Optionen werden dann an Zend_Json::encode() übergeben. _helper->json($data, array( 'enableJsonExprFinder' => true, 'keepLayouts' => true, )); ]]>