浅析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) }