json php 数组读写_PHP如何读取json文件,并解析成数组

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

我要打赏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值