Когда объекты PHP закодировываются в JSON, все публичные свойства этого объекта будут закодированы в объект JSON.
        JSON не поддерживает ссылки на объекты, поэтому следите за тем, чтобы
        не закодировывать объекты с рекурсивными ссылками. Если вы имеете дело
        с рекурсией, то в вызове методов Zend_Json::encode() и
        Zend_Json_Encoder::encode() можно установить второй
        необязательный параметр для проверки на рекурсию; если один и тот же
        объект подвергается сериализации дважды, то будет сгенерировано
        исключение.
    
Декодирование объектов JSON представляет собой дополнительную сложность, так как объекты Javascript скорее соответствуют ассоциативным массивам в PHP. Одни советуют передавать идентификатор класса, экземпляр этого класса должен быть создан и заполнен парами ключ/значение объекта JSON; другие считают, что это может представлять собой серьезную угрозу безопасности.
        По умолчанию Zend_Json будет декодировать объекты JSON как
        ассоциативные массивы. Но если вы хотите получить объект, то можете
        указать это: 
    
<?php // Декодировать объект как объект $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT); ?>
        Любые объекты, декодированные таким образом, возвращаются как
        объекты StdClass со свойствами, соответствующими парам
        ключ/значение в нотации JSON.
    
        Рекомендацией Zend Framework является то, что разрабочик
        должен сам принимать решение, как декодировать объект JSON. Если
        должен быть создан объект определенного типа, он может быть создан в
        коде разработчика и заполнен значениями, декодированными с помощью
        Zend_Json.