PageRenderTime 18ms CodeModel.GetById 15ms app.highlight 0ms RepoModel.GetById 1ms app.codeStats 0ms

/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
 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<!--
42vim:se ts=4 sw=4 et:
43-->