[ZF-10089] Zend_Log
[zend.git] / documentation / manual / cs / module_specs / Zend_Json-Objects.xml
blob64859a345f38f2e69682cbc0188f4371d75629de
1 <sect1 id="zend.json.objects">
2     <title>JSON Objekty</title>
3     <para>
4         Při převádění PHP objektů do JSON, budou veškere vlastnosti označené
5         jako public převedeny do JSON objektu.
6     </para>
7     <para>
8         JSON nedovoluje reference na objekt, takže je třeba dávat pozor a
9         nepřevádět objekty s rekurzivními referencemi. Pokud máte problémy
10         s rekurzemi, <code>Zend_Json::encode()</code> a
11         <code>Zend_Json_Encoder::encode()</code> umožňují volitelný druhý
12         parametr, zda se mají kontrolovat rekurze; pokud je objekt serializován
13         dvakrát, bude vyhozena výjimka.
14     </para>
15     <para>
16         Dekódování JSON objektů je komplikovanější, nicméně Javascriptové
17         objekty jsou nejvíce podobné asociativním polím v PHP. Někteří lidé
18         navrhují předávání identifikátoru třídy a naplnění instance objektu
19         daty ve formátu klíč/hodnota z JSON objektu; jiní si myslí, že by to
20         způsobilo značné bezpečnostní riziko.
21     </para>
22     <para>
23         Defaultně, <code>Zend_Json</code> dekóduje JSON objekty jako asociativní
24         pole. Nicméně, pokud vyžadujete vrácení objektu, můžete to určit takto:
25     </para>
26     <programlisting role="php"><![CDATA[<?php
27 // Dekódovat JSON objekty jako PHP objekty
28 $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);]]>
29     </programlisting>
30     <para>
31         Jakýkoliv objekt takto převedený je typu <code>StdClass</code>
32         s vlastnostmi odpovídajícími dvojicím klíč/hodnota z JSON zápisu.
33     </para>
34     <para>
35         Doporučení Zend Frameworku je, že každý vývojář by se měl rozhodnout
36         jak dekódovat JSON objekty. Pokud je potřeba vytvořit objekt daného
37         typu, tak může být vytvořen vlastním kódem a naplněn hodnotami
38         získanými dekódováním pomocí <code>Zend_Json</code>.
39     </para>
40 </sect1>
41 <!--
42 vim:se ts=4 sw=4 et:
43 -->