Zend Framework中的JSON解释器

来源:互联网 发布:ios电视直播软件2017 编辑:程序博客网 时间:2024/06/04 19:01

JSON是一种数据格式,全称为Javascript Object Notation。在Javascript,这个格式的数据可以很容易的转换为类的格式。

例如:

<script type="text/javascript">json = '{"name" : "SurfChen",   "skill": ["PHP","Javascript"]}';the_obj = eval("("+json+")");//上面两行等同于the_obj = {"name" : "SurfChen",   "skill": ["PHP","Javascript"]},注意引号的数量</script>

这时候
the_obj.name == ‘SurfChen’;
the_obj.skill[0] == ‘PHP’;
the_obj.skill[1] == ‘Javascript’;

而在几个月前发布的Zend Framework里,包含了一个叫Zend_Json的库,它可以让我们在PHP里很方便的把对象/数组的数据转换为JSON格式,或者把JSON格式转换为对象/数组的格式。

例1,JSON转换成对象

require_once("Json.php");$json='{"name" : "SurfChen",   "skill": ["PHP","Javascript"]}';print_r(Zend_Json::decode($json,Zend_Json::TYPE_OBJECT));

输出:
stdClass Object ( [name] => SurfChen [skill] => Array ( [0] => PHP [1] => Javascript ) )

例2,JSON转换成数组

require_once("Json.php");$json='{"name" : "SurfChen",   "skill": ["PHP","Javascript"]}';print_r(Zend_Json::decode($json,Zend_Json::TYPE_ARRAY));

输出:Array ( [name] => SurfChen [skill] => Array ( [0] => PHP [1] => Javascript ) )

例3,对象转换成JSON

require_once("Json.php");class person{    public $name  = 'surfchen';    public $skill = array('php','javascript');}$surfchen=new person;echo Zend_Json::encode($surfchen);

输出:{”__className”: “person”, “name” : “surfchen”, “skill” : [”php”, “javascript”]}

需要注意的是,PHP里,JSON里的键名和值,都必须以双引号括起来,而JS里,双引号和单引号皆可。