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,
)) ?>
]]>