由于json是那么的重要,因此PHP自从5.2就增加了对JSON的支持,主要包括两个函数:json_encode和json_decode。众所周知,json是一种数据的存储格式,我的博文里写过json的,在我的Javascript教程中,不明白的读者可以去搜一下。
比如我们新建一个xin.json文件,存储数据如下:
[{"name":"辛星","age":23},{"name":"小倩","age":20}]
我们可以写一个api.php文件,解析该json文件如下:
<?php
$content = file_get_contents("xin.json");
$obj = json_decode($content);
print_r($obj);
我们会发现它的输出如下:
Array ( [0] => stdClass Object ( [name] => 辛星 [age] => 23 ) [1] => stdClass Object ( [name] => 小倩 [age] => 20 ) )
很好理解,和Javascript很相似,这里的stdClass是基础类,不懂的童鞋可以去搜索下,这里按照我们的格式去输出这个json数据,其实我们使用它们就和我们在Javascript中使用是差不多的,那么我们下面将采用分开输出的样式:
<?php
$content = file_get_contents("xin.json");
$obj = json_decode($content);
for($i = 0;$i <count($obj);$i++){
echo "名字是:".$obj[$i]->name." 年龄是:".$obj[$i]->age."<br />";
}
名字是:辛星 年龄是:23
名字是:小倩 年龄是:20
而json_decode函数可以接受第二个参数的,如果是true的话,那么我们的json数据就会被转化为数组而不是对象了,其实对象和数组在很多时候是很像的,而且在PHP中,对象也不会调用方法。
既然我们队json_decode弄清楚了,那么json_encode就靠读者动动手了,很简单啦。。。。