/documentation/manual/cs/module_specs/Zend_Json-Objects.xml
https://github.com/decaoz/zf1 · XML · 43 lines · 40 code · 0 blank · 3 comment · 0 complexity · 9492f5a443c6f6aeb3bcd23bdecf25d2 MD5 · raw file
- <sect1 id="zend.json.objects">
- <title>JSON Objekty</title>
- <para>
- Při převádění PHP objektů do JSON, budou veškere vlastnosti označené
- jako public převedeny do JSON objektu.
- </para>
- <para>
- JSON nedovoluje reference na objekt, takže je třeba dávat pozor a
- nepřevádět objekty s rekurzivními referencemi. Pokud máte problémy
- s rekurzemi, <code>Zend_Json::encode()</code> a
- <code>Zend_Json_Encoder::encode()</code> umožňují volitelný druhý
- parametr, zda se mají kontrolovat rekurze; pokud je objekt serializován
- dvakrát, bude vyhozena výjimka.
- </para>
- <para>
- Dekódování JSON objektů je komplikovanější, nicméně Javascriptové
- objekty jsou nejvíce podobné asociativním polím v PHP. Někteří lidé
- navrhují předávání identifikátoru třídy a naplnění instance objektu
- daty ve formátu klíč/hodnota z JSON objektu; jiní si myslí, že by to
- způsobilo značné bezpečnostní riziko.
- </para>
- <para>
- Defaultně, <code>Zend_Json</code> dekóduje JSON objekty jako asociativní
- pole. Nicméně, pokud vyžadujete vrácení objektu, můžete to určit takto:
- </para>
- <programlisting role="php"><![CDATA[<?php
- // Dekódovat JSON objekty jako PHP objekty
- $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);]]>
- </programlisting>
- <para>
- Jakýkoliv objekt takto převedený je typu <code>StdClass</code>
- s vlastnostmi odpovídajícími dvojicím klíč/hodnota z JSON zápisu.
- </para>
- <para>
- Doporučení Zend Frameworku je, že každý vývojář by se měl rozhodnout
- jak dekódovat JSON objekty. Pokud je potřeba vytvořit objekt daného
- typu, tak může být vytvořen vlastním kódem a naplněn hodnotami
- získanými dekódováním pomocí <code>Zend_Json</code>.
- </para>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->