14.3. JSON Objects
Zurück | Kapitel 14. Zend_Json | Weiter

## 14.3. JSON Objects

Bei der Kodierung von PHP Objekten nach JSON werden alle öffentlichen Eigenschaften dieses Objektes im JSON Objekt kodiert.

JSON erlaubt keine Objektreferenzen, deshalb sollte dafür Sorge getragen werden, dass keine Objekte mit rekursiver Referenz kodiert werden. Wenn man Probleme mit Rekursion hat, erlauben `Zend_Json::encode()` und `Zend_Json_Encoder::encode()` die Angabe eines optionalen, zweiten Parameters, um auf Rekursion zu prüfen; wenn ein Objekt doppelt serialisiert wird, wird eine Ausnahme geworfen.

Das Dekodieren von JSON Objekten stellt eine weitere Schwierigkeit dar, allerdings entsprechen Javascript Objekte sehr einem assoziativen Array in PHP. Einige schlagen vor, dass ein Klassenbezeichner übergeben werden soll und eine Objektinstanz dieser Klasse erstellt und mit den Schlüssel/Wert Paaren des JSON Objektes bestückt werden soll; andere denken, dies könnte ein erhebliches Sicherheitsrisiko darstellen.

Standardmäßig wird `Zend_Json` die JSON Objekte als assoziative Arrays dekodieren. Wenn du allerdings wünscht, dass ein Objekt zurück gegeben wird, kannst du dies angeben:

    <?php
    // Dekodiere Objekte als Objekte
    $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
    ?>

Jedes dekodierte Objekte wird als `StdClass` Objekt mit Eigenschaften entsprechend der Schlüssel/Wert Paare der JSON Notation zuürckgegeben.

Die Empfehlung des Zend Framework ist, dass der einzelne Entwickler selber entscheiden sollte, wie er JSON Objekte dekodiert. Wenn ein Objekt eines bestimmten Typs erstellt werden soll, kann es im Code des Entwicklers erstellt werden und mit den dekodierten Werten unter Verwendung von `Zend_Json` bestückt werden.

Zurück | Nach oben | Weiter
14.2. Grundlegende Verwendung | Zum Anfang | Kapitel 15. Zend_Locale