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