1 <sect1 id="zend.json.objects">
2 <title>Obiekty JSON</title>
4 Kiedy kodujemy obiekt PHP jako JSON, wszystkie publiczne właściwości
5 tego obiektu zostaną zakodowane w obiekcie JSON.
8 JSON nie pozwala na referencje obiektów, więc musisz uważać abyś
9 nie próbował kodować obiektów z rekurencyjnymi referencjami. Jeśli masz
10 problemy z rekurencją, metody <code>Zend_Json::encode()</code> oraz
11 <code>Zend_Json_Encoder::encode()</code> przyjmują opcjonalny drugi
12 parametr, określający czy ma być sprawdzana rekurencja; jeśli obiekt
13 jest kodowany drugi raz, zostanie wyrzucony wyjątek.
16 Odkodowanie obiektów JSON sprawia dodatkową trudność, ponieważ obiekty
17 Javascript prawie dokładnie odpowiadają tablicom asocjacyjnym PHP.
18 Jedni proponują aby przekazywać identyfikator klasy, a następnie
19 tworzyć instancję obiektu tej klasy i wypełniać ją parami klucz/wartość
20 obiektu JSON; inni ostrzegają, że mogłoby to być istotną luką w bezpieczeństwie.
23 Domyślnie <code>Zend_Json</code> odkoduje obiekty JSON jako tablice
24 asocjacyjne. Jednak jeśli chcesz odebrać obiekt, możesz to określić
27 <programlisting role="php"><![CDATA[
28 // Odkoduj obiekty JSON jako obiekty PHP
29 $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
33 Wszystkie dekodowane obiekty są zwracane jako obiekty klasy
34 <code>StdClass</code> z właściwościami odpowiadającymi parom
35 klucz/wartość z obiektu JSON.
38 Zalecane jest aby to programista decydował o tym w jaki sposób mają być
39 odkodowane obiekty JSON. Jeśli powinien być utworzony obiekt konkretnego
40 typu, może być on utworzony w kodzie aplikacji, a następnie wypełniony
41 wartościami odkodowanymi za pomocą <code>Zend_Json</code>.