博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】平时我调用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'];
运行结果跟方法一的结果一致。
版权归 马富天个人博客 所有
本文链接地址:http://www.mafutian.com/156.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶1
踩0
评论审核未开启 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||