16.3. JSON 对象

当编码PHP对象为JSON时, 它的所有的公有属性将被编码为JSON格式(到JSON对象中).

解码JSON对象貌似有一点轻微的难度, 因为Javascript对象 与PHP的联合数组的结构更相近. 尽管如此, 一些人建议应该传入一个类的定义, 然后类的实例应该由JSON的key/value对来被建造和组装; 另外有人这样做会引发一些安全问题。

默认情况下, Zend_Json 将解码JSON对象作为关联数组 . 但是如果你希望它返回一个对象, 以可以这样来指定 :


<?php
// 解码JSON对象作为PHP对象
$phpNative Zend_Json::decode($encodedValueZend_Json::TYPE_OBJECT);
?>

这样任何解码后的对象将被作为一个StdClass的对象来返回, 对象带有根据JSON对象的key/value对生成的一系列属性。

Zend Framework推荐每个开发者应该决定怎样来解码JSON对象. 如果一个特定类型的对象需要被构建, 它可以由开发者的代码创建,然后用Zend_Json 解码后的值来组装。