9.3. JSON Objects

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

Das Dekodieren von JSON Objekten stellt eine leichte 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.