PHP如何读取json文件,并解析成数组
马富天
2016-07-10 16:32:21
355
【摘要】平时我调用json格式都是使用ajax去访问接口的,也没有想到直接使用PHP去处理json文件,下面总结一下PHP处理json文件的两种方法。
首先要读取的json文件格式:(json.json){
"comments": [
{ "id":"1","comment":"AAA" },
{ "id":"2","comment":"BBB" },
{ "id":"3","comment":"CCC" }
]
}
然后我们需要使用PHP去把这个json文件解析成数组,
方法一使用PHP内置函数json_decode()实现,json_decode()接受一个JSON格式的字符串并且把它转换为PHP变量
代码如下:$file = 'json.json';
$data = file_get_contents($file);//读取json文件的内容,返回的是字符串
$data = json_decode($data,true);//对 JSON 格式的字符串进行编码,解析数组
var_dump($data);
echo $data['comments'][0]['comment'];//输出数组中对应的元素
运行的结果如图:
注意,json_decode()第二个参数必须是true,也不能够省略,true这表示将返回array而非object,false表示object。
方法二,使用(array)强制类型转换,下面是我写的代码(不同的json文件格式是需要编写不同的转换代码):
也就是上一步中,第二个参数没有使用true的情况下:$file = 'json.json';
$data = file_get_contents($file);
$data = json_decode($data);
$data = (array)$data;//将$data强制转换成array(数组)
foreach ($data as $k => $v) {
$new = array();
foreach ($v as $key => $value) {
$value = (array)$value;//子对象也要转换成array
$new[] = $value;
}
$data[$k] = (array)$new;
}
var_dump($data);
echo $data['comments'][0]['comment'];
运行结果跟方法一的结果一致。
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶1
踩0
我要打赏