1 <sect1 id="zend.json.objects">
2 <title>JSON Objekty</title>
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.
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.
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.
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:
26 <programlisting role="php"><![CDATA[<?php
27 // Dekódovat JSON objekty jako PHP objekty
28 $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);]]>
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.
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>.