在开发网站的过程中,经常需要将数据以一种易于处理的方式传输。这时候,JSON变成了一种非常常用的数据格式。
那么,PHP中如何对JSON进行转换呢?
首先,利用json_encode()函数可以将PHP数组转换成JSON格式的字符串:
$students = array( array('name'=>'Tom', 'age'=>20, 'sex'=>'male'), array('name'=>'Linda', 'age'=>19, 'sex'=>'female'), array('name'=>'Jack', 'age'=>21, 'sex'=>'male') ); $json_str = json_encode($students); echo $json_str;
运行结果为:
[ {"name":"Tom","age":20,"sex":"male"}, {"name":"Linda","age":19,"sex":"female"}, {"name":"Jack","age":21,"sex":"male"} ]
可以看到,json_encode()函数将PHP数组按照JSON格式转换成功。
同样地,可以利用json_decode()函数将JSON字符串转换成PHP数组:
$json_str = ' [ {"name":"Tom","age":20,"sex":"male"}, {"name":"Linda","age":19,"sex":"female"}, {"name":"Jack","age":21,"sex":"male"} ] '; $arr = json_decode($json_str, true); print_r($arr);
运行结果为:
Array ( [0] =>Array ( [name] =>Tom [age] =>20 [sex] =>male ) [1] =>Array ( [name] =>Linda [age] =>19 [sex] =>female ) [2] =>Array ( [name] =>Jack [age] =>21 [sex] =>male ) )
可以看到,json_decode()函数将JSON字符串按照PHP数组格式转换成功。
除了将JSON格式的字符串转换成PHP数组,还可以将JSON格式的字符串转换成PHP对象:
$json_str = ' { "name": "Tom", "age": 20, "sex": "male" } '; $obj = json_decode($json_str); echo $obj->name; echo $obj->age; echo $obj->sex;
运行结果为:
Tom 20 male
可以看到,json_decode()函数按照PHP对象格式将JSON字符串转换成功。
还需要注意的是,在使用json_encode()函数转换PHP数组或对象成JSON格式的字符串时,需要注意字符编码的问题。比如,PHP文件的编码为UTF-8,而中文字符的编码可能为GBK,这时候需要进行字符转换,将中文字符编码转换为UTF-8编码,否则在转换JSON时会出现乱码。
综上,利用PHP自带的json_encode()和json_decode()函数可以轻松地将PHP数组或对象转换成JSON格式,并且也可以将JSON格式的字符串转换成PHP数组或对象。