JSON objekty
Keď sa serializuje PHP objekt na JSON objekt všetky verejné vlastnosti
sú zahrnuté vo výslednom objekte.
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 Zend_Json::encode() a
Zend_Json_Encoder::encode(), ktorý zisťuje rekurziu - ak je objekt
serializovaný druhý raz bude vyvolaná výnimka.
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.
Zend_Json primárne vracia asociatívne pole, ak chcete aby bol
vrátený objekt, môžete to urobiť nasledovne:
]]>
Všetky objekty sú takto deserializované ako StdClass a ich
vlastnosti zodpovedajú vlastnostiam a ich hodnotám z JSON objektu.
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 Zend_Json