JSON Helfer
Wenn Views erstellt werden die JSON zurückgeben ist es wichtig auch den
entsprechenden Antwort-Header zu setzen. Der JSON View Helfer macht exakt
das. Zusätzlich schaltet er, standardmäßig, Layouts aus (wenn diese aktuell eingeschaltet
sind), weil Layouts generell nicht mit JSON Antworten verwendet werden.
Der JSON Helfer setzt die folgenden Header:
Die meisten AJAX Bibliotheken sehen nach diesem Header wenn die Antworten
geparst werden um festzustellen wie der Inhalt handzuhaben ist.
Die Verwendung des JSON Helfers ist sehr geradlienig:
json($this->data) ?>
]]>
Layouts behalten und Encoding einschalten durch Verwendung von Zend_Json_Expr
Jede Methode im JSON Helfer akzwptiert ein zweites, optionales,
Argument. Dieses zweite Argument kan ein boolsches Flag sein um Layouts ein- oder
auszuschalten, oder ein Array von Optionen die an
Zend_Json::encode() übergeben und intern verwendet werden um
Daten zu kodieren.
Um Layouts zu behalten muß der zweite Parameter ein boolsches TRUE
sein. Wenn der zweite Parameter ein Array ist, können Layouts behalten werden indem ein
keepLayouts Schlüssel mit dem boolschen Wert
TRUE eingefügt wird.
json($this->data, true);
// Oder ein boolsches true als "keepLayouts" Schlüssel:
echo $this->json($this->data, array('keepLayouts' => true));
]]>
Zend_Json::encode erlaubt es native JSON
Ausdrücke zu kodieren indem Zend_Json_Expr Objekte verwendet
werden. Diese Option ist standardmäßig deaktiviert. Um diese Option zu aktivieren, muß
ein boolsches TRUE an den enableJsonExprFinder
Schlüssel des Options Arrays übergeben werden:
json($this->data, array(
'enableJsonExprFinder' => true,
'keepLayouts' => true,
)) ?>
]]>