PHP如何读取json文件,并解析成数组

学习笔记 马富天 2016-07-10 16:32:21 102 0

【摘要】平时我调用json格式都是使用ajax去访问接口的,也没有想到直接使用PHP去处理json文件,下面总结一下PHP处理json文件的两种方法。

首先要读取的json文件格式:(json.json)

  1. {
  2.   "comments": [
  3.    { "id":"1","comment":"AAA" },
  4.    { "id":"2","comment":"BBB" },
  5.    { "id":"3","comment":"CCC" }
  6.   ]
  7. }

然后我们需要使用PHP去把这个json文件解析成数组,

方法一使用PHP内置函数json_decode()实现,json_decode()接受一个JSON格式的字符串并且把它转换为PHP变量

代码如下:

  1. $file = 'json.json';
  2. $data = file_get_contents($file);	//	读取json文件的内容,返回的是字符串
  3. $data = json_decode($data,true);	//	对 JSON 格式的字符串进行编码,解析数组
  4. var_dump($data);
  5. echo $data['comments'][0]['comment'];	//	输出数组中对应的元素

运行的结果如图:

请输入图片名称

注意,json_decode()第二个参数必须是true,也不能够省略,true这表示将返回array而非object,false表示object。

方法二,使用(array)强制类型转换,下面是我写的代码(不同的json文件格式是需要编写不同的转换代码):

也就是上一步中,第二个参数没有使用true的情况下:

  1. $file = 'json.json';
  2. $data = file_get_contents($file);
  3. $data = json_decode($data);
  4. $data = (array)$data;	//	将$data强制转换成array(数组)
  5. foreach ($data as $k => $v) {	
  6. 	$new = array();
  7. 	foreach ($v as $key => $value) {
  8. 		$value = (array)$value;	//	子对象也要转换成array
  9. 		$new[] = $value;
  10. 	}		
  11. 	$data[$k] = (array)$new;
  12. }
  13. var_dump($data);
  14. echo $data['comments'][0]['comment'];

运行结果跟方法一的结果一致。

版权归 马富天PHP博客 所有

本文标题:《PHP如何读取json文件,并解析成数组》

本文链接地址:http://www.mafutian.net/156.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

1

0

上一篇《 传统的聚类分析方法简介 》 下一篇《 4个json小例子让你记住json的格式 》
分享到:

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码