| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- <sect1 id="zend.json.objects">
- <title>JSON objekty</title>
- <para>
- Keď sa serializuje PHP objekt na JSON objekt všetky verejné vlastnosti
- sú zahrnuté vo výslednom objekte.
- </para>
- <para>
- JSON nedovoľuje referencie na objekty a teda je potrebné dať pozor na objekty
- s rekurzívnymi referenciami. Ak máte problém s rekurziou, môžete nastaviť
- druhy nepovinný parameter pri volaniach <code>Zend_Json::encode()</code> a
- <code>Zend_Json_Encoder::encode()</code>, ktorý zisťuje rekurziu - ak je objekt
- serializovaný druhý raz bude vyvolaná výnimka.
- </para>
- <para>
- Deserializácia JSON objektov nie je jednoduchá, pretože Javascript objekty
- sú podobné asociatívnym poliam v PHP. Niekto navrhuje odovzdať meno triedy
- a následnej vytvoriť jej inštanciu, ktorá bude obsahovať vlastnosti a hodnoty
- z JSON objektu - ostatným sa to zdá ako značná bezpečnostná diera.
- </para>
- <para>
- <code>Zend_Json</code> primárne vracia asociatívne pole, ak chcete aby bol
- vrátený objekt, môžete to urobiť nasledovne:
- </para>
- <programlisting role="php"><![CDATA[<?php
- // Decode objects as objects
- $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
- ?>]]></programlisting>
- <para>
- Všetky objekty sú takto deserializované ako <code>StdClass</code> a ich
- vlastnosti zodpovedajú vlastnostiam a ich hodnotám z JSON objektu.
- </para>
- <para>
- Zend Framework prenecháva rozhodnutie ako nakladať z deserializovanými objektami
- na vývojára. Ak je potrebné vytvoriť špecifický objekt, stále je to možné
- urobiť priamo v kóde a použiť hodnoty získane z <code>Zend_Json</code>
- </para>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|