这个问题很简单,在php里json格式就是字符串,可以用php内置函数json_decode($json,true)转化成数组,取数组的值你应该知道怎么弄了吧
创新互联建站-专业网站定制、快速模板网站建设、高性价比永泰网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式永泰网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖永泰地区。费用合理售后完善,十余年实体公司更值得信赖。
首页{"2018-03-23T16:00:00.000+0000":[{"seat":"没有空位","seatStatusEn":"No Seat"]}不是标准json格式字符串,No Seat"]地方缺少“}”,应该是No Seat"}];
php转换json格式为数组或对象使用json_decode()函数;
图示:
从解析的格式来看,将时间戳作为下标是个不好的习惯,在获取seat和eatStatusEn值的时候不方便,最好修改一下结构:
如果json是以对象的方式存储于变量$json中,则这样引用: $json-openid
如果json是以关联数组的方式存储于变量$json中,则这样引用: $json['openid']
如果json是以字符串的方式存储于变量$json中,则需要先转换一下:
$a = json_decode($json);
print_r($a-openid);
或者
$a = json_decode($json,true);
print_r($a['openid']);
先把获取的内容打印出来 ,看看是不是正常返回的数据
$filename = "";
$content = file_get_contents($filename);
$json = @json_decode($content );
if($json){
$city=$json-city;
}else{
echo "json解析失败:".$content;
}
也可以根据你的框架功能,写成日志,方便出错时随时检查
另外 ,json_decode 可以接收一个参数来确定解析成对象还是数组
$content = '{"ip":"120.239.177.231","pro":"广东省","proCode":"440000","city":"中山市","cityCode":"442000","region":"","regionCode":"0","addr":"广东省中山市 移通","regionNames":"","err":""}';
$json = json_decode($content,true);
echo $json['city'];
参考文档:PHP json_decode
$dataJson = "数据"; // 提供数据
$data = json_decode($dataJson); // 数据按json解析成php数组
$minuteArr = $data['minute']; // 从数组中获取minute数据
此时$minuteArr中存放的就是你要的数据,但数组下标(键)是从0开始,如需要从1开始,则遍历$minuteArr修改下标(键) 或 使用php数组函数进行快速重构。
注:你这问题是还没入门的初学者问的问题,建议还是多看看书!...
可以用$obj=key 的方式直接读取 也可以先转换为数组 用遍历数组的方法读取
?php
$json = '{"a":100,"b":200,"c":300,"d":400,"e":500}';
//首先将json字符串转换成关联数组
$arr=json_decode($json, true);
//然后循环读取数据
foreach($arr as $item){
echo $item;
echo "br/";
}
?
运行结果:
100
200
300
400
500