json_encode()
:该函数主要用来将数组或对象,转换为json格式.
注意:json只接受utf-8编码的字符,json_encode()的参数必须是utf-8编码。
例子①:
$array = array("a"=>"is a","b"=>"is b");
echo json_encode($array);
输出结果为:
{"a":"is a","b":"is b"}
例子②:
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,100);
$foo_json = json_encode($obj);
echo $foo_json;
{
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,100);
$foo_json = json_encode($obj);
echo $foo_json;
输出结果为(
类中的属性为私有变量的时候,则不会输出
):
{"name":"zhangsan","age":20,"height":100}
json_decode():该函数用于将json文本转换为相应的php数据结构
转换成对象:
$json = '{"a":"hello","b":"world","c":"zhangsan","d":20,"e":170}';
var_dump(json_decode($json));
var_dump(json_decode($json));
输出结果为:
object(stdClass)[1]
public 'a' => string 'hello' (length=5)
public 'b' => string 'world' (length=5)
public 'c' => string 'zhangsan' (length=8)
public 'd' => int 20
public 'e' => int 170
public 'a' => string 'hello' (length=5)
public 'b' => string 'world' (length=5)
public 'c' => string 'zhangsan' (length=8)
public 'd' => int 20
public 'e' => int 170
转换成数组:
$json = '{"a":"hello","b":"world","c":"zhangsan","d":20,"e":170}';
var_dump(json_decode($json, true));
var_dump(json_decode($json, true));
输出结果为:
array (size=5)
'a' => string 'hello' (length=5)
'b' => string 'world' (length=5)
'c' => string 'zhangsan' (length=8)
'd' => int 20
'e' => int 170
'a' => string 'hello' (length=5)
'b' => string 'world' (length=5)
'c' => string 'zhangsan' (length=8)
'd' => int 20
'e' => int 170
记住,数组不可以使用->访问属性