json_encode与json_decode的详解

时间:2021-08-13 22:17:05

1、json_encode()                                                                      

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

例如:

$arr = array ('a'=>'a','b'=>'b','c'=>'c','d'=>'d','e'=>'e');
echo json_encode($arr);

结果:{"a":"a","b":"b","c":"c","d":"d","e":"e"}

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

代码如下1:
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,60);
$foo_json = json_encode($obj);
echo $foo_json;

结果:{"name":"zhangsan","age":"20","height":"60"}

代码如下2:

将一维数组转换成json格式
$arr1 = array();
$arr1["name"] = "zhangsan";
$arr1["age"] = 25;
$arr1["address"] = "安徽";
echo json_encode($arr1);
结果:{"name":"zhangsan","age":25,"address":"\u5b89\u5fbd"}



2、json_decode()   

$json = '{"a":"hello","b":"world","c":"zhangsan","d":20,"e":170}';
var_dump(json_decode($json));

结果:

stdClass Object ( [a] => hello [b] => world [c] => zhangsan [d] => 20 [e] => 170 )