浅析json_encode()和json_decode()

json_encode() 该函数主要用来将数组和对象,转换为json格式。

json只接受utf-8编码的字符,json_encode()的参数必须是utf-8编码。

$arr = array('1'=>'a','2'=>'b','3'=>'c','4'=>'d','5'=>'e');
echo json_encode($arr);
// 输出结果:
// {"1":"a","2":"b","3":"c","4":"d","5":"e"}

当类中的属性为私有变量的时候,则不会输出。

class person {
    public $name;
    public $age;
    public $height;
    function __construct($name,$age,$height)
    {
        $this->name = $name;
        $this->age = $age;
        $this->height = $height;
    }
}

$obj = new person("zhangsan",20,178);
echo json_encode($obj);
// 输出结果:
// {"name":"zhangsan","age":20,"height":178}

json_decode() 该函数用于将json文本转换为相应的PHP数据结构。

通常情况下,json_decode()总是返回一个PHP对象。

$json = '{"a":"hello","b":"world","c":"zhangsan","d":20,"e":170}';
var_dump(json_decode($json));
// 输出结果:
// object(stdClass)#1 (5) { ["a"]=> string(5) "hello" ["b"]=> string(5) "world" ["c"]=> string(8) "zhangsan" ["d"]=> int(20) ["e"]=> int(170) }

也可以返回数组格式

$json = '{"a":"hello","b":"world","c":"zhangsan","d":20,"e":170}';
var_dump(json_decode($json,'ture'));
// 输出结果:
// array(5) { ["a"]=> string(5) "hello" ["b"]=> string(5) "world" ["c"]=> string(8) "zhangsan" ["d"]=> int(20) ["e"]=> int(170) }
posted @ 2016-03-08 23:54  chenjiacheng  阅读(368)  评论(0编辑  收藏  举报