在php网站的制作过程中,前台和后台界面的交互,经常要涉及数据的交互,而数据的交互,很多都是由json来封装数据的,然后再后端通过解码,将json格式的数据转换成数组或者是其他形式的数据格式来处理,所以,对json的解码和编码对于数据交互是非常重要的,下面我们就来了解一下php中如何对变量进行json编码和解码?
一、json的编码
在php中,数组,字符串亦或者是对象都可以转换成json的格式,以便于在前后台中数据的交互使用,在php中,将变量转换为json格式要使用到的是json_encode这个函数,例子如下:
$a=array('a'=>1,"b"=>2);
var_dump(json_encode($a));
在浏览器输出json的格式是这样的:array(3) { ["a"]=> int(1) ["c"]=> int(4) ["d"]=> int(7) }。
其实不仅是php中的变量可以转换为json格式,php中的类也是可以转换为json格式的,例子:
class test_json{
public $name;
public $age;
}
$test_json1=new test_json();
$test_json1->name="uo";
$test_json1->age=20;
var_dump(json_encode($test_json1));
在浏览器中输出:string(22) "{"name":"uo","age":20}"。
二、json格式的解码
在后台我们接收到json的格式,我们需要将json格式准换为我们便于使用的数据格式,通常都是用来转为数组的格式,这一过程也就是json的解码过程,用到的函数是json_decode这个函数,例子如下:
$json='{"a":1,"c":4,"d":7}';
$b=json_decode($json,true);
var_dump($b);
在浏览器输出:array(3) { ["a"]=> int(1) ["c"]=> int(4) ["d"]=> int(7) }。
在以上的例子中,json_decode的第二个参数表示的是返回数组还是对象,如果写上true就会返回数组,否则返回对象,json_decode($json,true)这就表示将返回一个数组。