| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect3 id="zend.view.helpers.initial.json">
- <title>JSON Helfer</title>
- <para>
- Wenn Views erstellt werden die <acronym>JSON</acronym> zurückgeben ist es wichtig auch den
- entsprechenden Antwort-Header zu setzen. Der <acronym>JSON</acronym> View Helfer macht exakt
- das. Zusätzlich schaltet er, standardmäßig, Layouts aus (wenn diese aktuell eingeschaltet
- sind), weil Layouts generell nicht mit <acronym>JSON</acronym> Antworten verwendet werden.
- </para>
- <para>
- Der <acronym>JSON</acronym> Helfer setzt die folgenden Header:
- </para>
- <programlisting language="text"><![CDATA[
- Content-Type: application/json
- ]]></programlisting>
- <para>
- Die meisten <acronym>AJAX</acronym> Bibliotheken sehen nach diesem Header wenn die Antworten
- geparst werden um festzustellen wie der Inhalt handzuhaben ist.
- </para>
- <para>
- Die Verwendung des <acronym>JSON</acronym> Helfers ist sehr geradlienig:
- </para>
- <programlisting language="php"><![CDATA[
- <?php echo $this->json($this->data) ?>
- ]]></programlisting>
- <note>
- <title>Layouts behalten und Encoding einschalten durch Verwendung von Zend_Json_Expr</title>
- <para>
- Jede Methode im <acronym>JSON</acronym> 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
- <methodname>Zend_Json::encode()</methodname> übergeben und intern verwendet werden um
- Daten zu kodieren.
- </para>
- <para>
- Um Layouts zu behalten muß der zweite Parameter ein boolsches <constant>TRUE</constant>
- sein. Wenn der zweite Parameter ein Array ist, können Layouts behalten werden indem ein
- <property>keepLayouts</property> Schlüssel mit dem boolschen Wert
- <constant>TRUE</constant> eingefügt wird.
- </para>
- <programlisting language="php"><![CDATA[
- // Ein boolsches true als zweites Argument aktiviert Layouts:
- echo $this->json($this->data, true);
- // Oder ein boolsches true als "keepLayouts" Schlüssel:
- echo $this->json($this->data, array('keepLayouts' => true));
- ]]></programlisting>
- <para>
- <classname>Zend_Json::encode</classname> erlaubt es native <acronym>JSON</acronym>
- Ausdrücke zu kodieren indem <classname>Zend_Json_Expr</classname> Objekte verwendet
- werden. Diese Option ist standardmäßig deaktiviert. Um diese Option zu aktivieren, muß
- ein boolsches <constant>TRUE</constant> an den <property>enableJsonExprFinder</property>
- Schlüssel des Options Arrays übergeben werden:
- </para>
- <programlisting language="php"><![CDATA[
- <?php echo $this->json($this->data, array(
- 'enableJsonExprFinder' => true,
- 'keepLayouts' => true,
- )) ?>
- ]]></programlisting>
- </note>
- </sect3>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|