json代码为:{"ticketInfo":{"T110":[{"pr":257.5,"type":"硬座"},{"pr":405.5,"type":"硬卧"},{"pr":577.5,"type":"软卧"},{"pr":1074,"type":"高级软卧"},{"pr":257.5,"type":"无座"}]},"trainInfo":{"T110":{"arriCity_py":"beijing","dptDate":"2016-10-28","code":"T110","status":"1","arriTime":"09:30","istmp":false,"deptCity_py":"shanghai","arrDate":"2016-10-29","arriCity":"北京","trainType":"空调特快","deptTime":"18:02","arriStation":"北京","deptStation":"上海","deptCity":"上海","interval":"15小时28分钟"}},"trainScheduleHead":["站次","站名","日期","到达时间","开车时间","停车时间","里程","硬座","硬卧下","软卧下"],"extInfo":{"allMileage":"1463公里","allTime":"15小时28分钟"},"trainScheduleBody":[{"mxl":12490639969101,"content":[34,"徐州","第二天","01:35","01:42","7分","649公里",119,"182","253"]},{"content":[17,"无锡","第一天","19:19","19:23","4分","126公里",33.5,"73.5","105.5"]},{"mxl":7644416122782,"content":[13,"沧州","第二天","06:45","06:55","10分","1199公里",153.5,"272.5","423"]},{"content":[76,"苏州","第一天","18:51","18:54","3分","84公里",88.5,"68.5","96.5"]},{"content":[55,"常州","第一天","19:46","19:50","4分","165公里",75.5,"82","114.5"]},{"content":[38,"上海","-","起点站","18:02","-",0,37,"0","0"]},{"content":[45,"北京","第二天","09:30","终到站","-","1463公里",212.5,"325.5","497.5"]},{"content":[72,"德州","第二天","05:49","05:51","2分","1086公里",203.5,"275","395"]},{"content":[93,"南京","第一天","21:50","22:01","11分","301公里",134.5,"107","149"]},{"content":[51,"天津西","第二天","08:05","08:09","4分","1315公里",205.5,"295","465"]}]}

用php如何解析出各参数值:

checi_json.php代码如下:<?php

header('Content-Type: text/html; charset=utf-8');

//方法一和方法二执行结果是一样的 from guabu

//$url = 'http://www.guabu.com/api/checi.php?checi=$checi';//方法一

//$obj = file_get_contents($url);//方法一

//echo ("要解析的json:".$obj."
");//方法一

//$obj = json_decode($obj);//方法一

$checi = "G5";

$url = fopen("http://www.guabu.com/api/checi.php?checi=$checi","rb");    //rb表示读取二进制文件,方法二

while (!feof($url)) {  //feof() 函数检测是否已到达文件末尾,方法二

$obj .= fread($url, 10000);    //fread() 从文件里 读取最多 xx 个字节,方法二

}//,方法二

fclose($url); //方法二

$obj = json_decode($obj);    //json_decode表示对获取到的JSON格式的字符串进行解码

$ticket = $obj->ticketInfo;

$trainInfo = $obj->trainInfo;

$trainScheduleBody = $obj->trainScheduleBody;

echo '循环数组次数:'.count($ticket->$checi).'
';

foreach ($ticket->$checi as $key1) {    //对应 json 里 ticketInfo 参数

echo '

pr = '.$key1->pr.' , type = '.$key1->type.'';

}

echo '
打印出trainInfo下的车次各对应参数值
';

if(count($obj->trainInfo->$checi)){//echo count($obj->trainInfo->$checi); 如果存在trainInfo的$checi值则执行如下

print 'arriCity_py值:'.$obj->{'trainInfo'}->{'$checi'}->{'arriCity_py'}.'
';

print 'dptDate值:'.$obj->{'trainInfo'}->{'$checi'}->{'dptDate'}.'
';

print 'code值:'.$obj->{'trainInfo'}->{'$checi'}->{'code'}.'
';

print 'status值:'.$obj->trainInfo->$checi->status.'
';

print 'arriTime值:'.$obj->trainInfo->$checi->arriTime.'
';

print 'istmp值:'.$obj->trainInfo->$checi->istmp.'
';

print 'deptCity_py值:'.$obj->trainInfo->$checi->deptCity_py.'
';

print 'arrDate值:'.$obj->trainInfo->$checi->arrDate.'
';

print 'arriCity值:'.$obj->trainInfo->$checi->arriCity.'
';

print 'trainType值:'.$obj->trainInfo->$checi->trainType.'
';

print 'deptTime值:'.$obj->trainInfo->$checi->deptTime.'
';

print 'arriStation值:'.$obj->trainInfo->$checi->arriStation.'
';

print 'deptStation值:'.$obj->trainInfo->$checi->deptStation.'
';

print 'deptCity值:'.$obj->trainInfo->$checi->deptCity.'
';

print 'interval值:'.$obj->trainInfo->$checi->interval.'
';

}

echo '
打印出trainScheduleHead的各内容
';

if(count($obj->trainScheduleHead)){//处理trainScheduleHead节点

foreach ($obj->trainScheduleHead as $key2) {    //对应 json 里 trainScheduleHead里的内容

print $key2.'
';

}

}

echo '
打印出extInfo的内容
';

if(count($obj->extInfo)){//处理extInfo节点

print 'allMileage值:'.$obj->extInfo->allMileage.'
';

print 'allTime值:'.$obj->extInfo->allTime.'
';

}

echo '
循环打印出trainScheduleBody的各内容
';

if(count($obj->trainScheduleBody)){//处理trainScheduleBody节点

foreach ($obj->trainScheduleBody as $key3) {    //对应 json 里 trainScheduleHead里的内容

foreach ($key3->content as $key4) {    //处理循环的content内容

print $key4.'
';

}

}

}

?>

参考运行例子:

php 接收复杂json,php解析复杂json的实例 - 火车api的应用相关推荐

  1. 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  2. Java XML转换为JSON XML解析 转换为JSON Java 实现JSON转换为XML json转xml

    Java XML转换为JSON XML解析 转换为JSON Java 实现JSON转换为XML json转xml 一.转换代码 1.XML字符串转换为JSON /*** description: XM ...

  3. json在线解析工具json formatter and json parser online

    json在线解析工具json formatter and json parser online, 推荐工具http://www.bestjson.com

  4. php json无法解析中文,json 无法解析解决方法

    json 无法解析 跟大伙请教一个问题,在网站做了一个功能,加载第三方类文件发送短信,短信发送成功,把array('status'=0,'message'='发送成功')以json字符串的形式返回,现 ...

  5. 【解决】json字符串解析失败json.decoder.JSONDecodeError

    解决json解析失败报错:json.decoder.JSONDecodeError 最近遇到一个json字符串解析失败的问题,原因是json里面的":这个两个符合和一些特殊符号在搞鬼,报错如 ...

  6. 【JSON文件解析】JSON文件

    文章目录 概要:本期主要介绍Qt解析JSON数据格式文件的方式. 一.JSON数据格式 1.JSON类似于XML,在JSON文件中,==有且只有一个根节点 2.JSON有两种主流包含型构造字符:{对象 ...

  7. json数据解析,json数据转为java对象

    在Android开发过程中,经常需要与后台进行数据的交互,JSON作为一种轻量级的数据格式,经常被 后台作为传输数据的格式,将数据传输到客户端.JSON有两种格式,一种是对象格式的,另一种是数组格式的 ...

  8. java数组里套数组_用JAVA进行Json数据解析(对象数组的相互嵌套)

    这段时间我们在做一个英语翻译软件的小小小APP,涉及到了对Json数据的解析,所以特地来总结一下! 假设我们要对如下数据进行解析,其实在平时,返回的Json数据是很乱的,很难分清数据的关系,这是经过相 ...

  9. Esp8266 --深入分析官方json解析源码及如何使用json接口解析心知天气

    什么是json? 懵逼回答:[参考菜鸟教程]   a.JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)   b.JSON 是轻量级的文本数据交 ...

最新文章

  1. Ubuntu系统打开终端的方法
  2. [20180806]tune2fs调整保留块百分比.txt
  3. Nginx小功能合集
  4. Rxjava之操作符distinct和elementAt
  5. JS替换空格回车换行符
  6. 机器人 沈为民_会变形的机器人
  7. node 更新_Node.js 15 正式发布,14 将支持到 2023 年
  8. 通过 WIFI 用 adb 调试 Android 设备
  9. 【MongoDB】递归获取字段更新表达式,更新复杂数据类型对象
  10. .net core 中如何有效屏蔽重复提交
  11. Xcode中StaticLibrary和Framework的共同点和区别
  12. android smb 图片,谷歌放出安卓版Samba客户端 但仅支持SMBv1
  13. 卢伟冰:Redmi K30会支持全网通5G 雷军:必须的!
  14. 【渝粤教育】国家开放大学2018年春季 0390-22T古代诗歌散文专题 参考试题
  15. 为什么要制定一些自己根本不想执行的计划?
  16. xpraid安装_在Win2003/XP安装光盘中集成RAID驱动 不用软驱装RAID/SATA/SAS驱动
  17. DCMTK findscu 查询信息
  18. dnf喇叭怎么设置不显示服务器,《DNF》屏蔽广告喇叭方法 广告喇叭怎么关掉
  19. python免安装版使用
  20. Java人工弱智算法_人工智障也刷题!Kaggle 入门之实战泰坦尼克号

热门文章

  1. OringPro 调整坐标轴
  2. CentOS7用YUM方式安装MySQL5.7
  3. 学习java第6天 模仿XP画板(10%)
  4. HDMI采集卡芯片方案
  5. B端产品:通过线上渠道增长
  6. 微程序控制计算机的工作原理,微程序控制器的基本原理详细图解
  7. 金融结构的经济学分析
  8. 中南大学python考试_Python数据分析与展示_中国大学_答案2021年知到精神病学(中南大学)章节答案...
  9. 四、Python复习教程(重点)-爬虫框架
  10. php参考文献博客,科学网—博客文章可否作为参考文献引用? - 王德华的博文