今天做项目的时候需要用到json数组,解析时遇到了个小小的麻烦,特此将解决办法记下:

json数据如下:

{
"code":200,
"message":"ok",
"data":[
{
"id":78,
"title":"模糊",
"description":"垃圾",
"type":1,
"fee":3,
"senderPhone":"5534964615",
"sender":29,
"receiver":null,
"sendTime":"2016-03-24 16:59:37",
"endTime":"2016-02-24 17:06:00",
"longtitude":118.940289,
"latitude":32.126177,
"finished":0
},
{
"id":77,
"title":"后门拿货",
"description":"一箱水果",
"type":1,
"fee":1,
"senderPhone":"",
"sender":29,
"receiver":null,
"sendTime":"2016-03-24 11:26:15",
"endTime":"2016-02-24 11:33:00",
"longtitude":118.940289,
"latitude":32.126177,
"finished":0
},
{
"id":76,
"title":"",
"description":"",
"type":1,
"fee":1,
"senderPhone":"",
"sender":29,
"receiver":null,
"sendTime":"2016-03-24 11:25:02",
"endTime":"2016-02-24 11:32:00",
"longtitude":118.940289,
"latitude":32.126177,
"finished":0
},
{
"id":75,
"title":"",
"description":"",
"type":1,
"fee":1,
"senderPhone":"",
"sender":29,
"receiver":null,
"sendTime":"2016-03-24 11:24:58",
"endTime":"2016-02-24 11:32:00",
"longtitude":118.940289,
"latitude":32.126177,
"finished":0
},
{
"id":74,
"title":"jsddhdgg",
"description":"纷纷打电话和的",
"type":1,
"fee":3,
"senderPhone":"66485648866",
"sender":29,
"receiver":null,
"sendTime":"2016-03-08 12:34:09",
"endTime":"2016-02-08 12:40:00",
"longtitude":118.940905,
"latitude":32.126506,
"finished":0
}
]
}

首先讲讲如何获取上面数据中

code 和 message 的方法

其实很简单:

我们将他们赋值给一个变量叫data

$json_string = 'http://52.88.220.193:81/lists.php';//获得json的url
$data = curl_file_get_contents($json_string);//通过方法获得json串

想要拿到code的值:

//对data进行编码
$obj = json_decode($data);
//获得code 值
$code = $obj->code;
$message = $obj->message;

如何拿到data下面的id的值呢?

也很简单:

//data[0] 表示data下第0组 ,下面的意思是第0组的id的值
$arr = $obj->data[0]->id;

其他内容如 title ,type等取法相同

既然取的方法一样 我是不是可以通过循环来做呢?当然可以

不过这里我们知道数据是有5组如果并不知道有几组要如何获取

data有几组数据呢?

用count()方法么?经过测试这个方法似乎并不行,(本人电脑测试,限于环境等因素,不代表所有都不行,可能其他人可以)

我的方法是:先将data的所有数据赋给一个变量,然后使用count()方法计算此数组的大小,事实证明是可行的;:)

$obj = json_decode($data);

$size2 = $obj->data;

$size2 = count($size2);

echo 'data :'.$size2.'<br/>';//显示数组长度

php 解析json的更多相关文章

  1. Xamarin.Android下获取与解析JSON

    一.新建项目 1.新建一个Android项目,并命名为为NetJsonList 2.右击引用,选择添加引用,引用System.Json.dll 二.同步请求 既然是跨平台,我们自然不能按照java下的 ...

  2. 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)

    在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...

  3. 阶段一:通过网络请求,获得并解析JSON数据(天气应用)

    “阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用.即使功能很简单,但我还是想把它做成一个相对完 ...

  4. 阶段一:解析JSON

    “阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 最近学到解析JSON格式的网络数据,而作业也要求自己找一个天气预报的API地址,然后解析其中JSON格式的数据.可 ...

  5. C语言创建及解析Json的使用法则

    参考原文:http://blog.csdn.net/xukai871105/article/details/33013455 JSON(JavaScriptObject Notation)是一种轻量级 ...

  6. 不一样的dynamic解析json 万能方法

    写过javascript的人都知道js解析json 1:(JSON) 字符串转换为对象. var str = '{"name":"lsw","hobb ...

  7. C# 解析JSON的几种办法

    欲成为海洋大师,必知晓海中每一滴水的真名. 刚开始只是想找一个转换JSON数组的方法,结果在MSDN翻到一大把. 搜索过程中免不了碰到一大堆名词:WCF => DataContract => ...

  8. eval解析JSON中的注意点

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

  9. C#解析json文件的方法

    C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的 ...

  10. WP8解析JSON格式(使用DataContractJsonSerializer类)(推荐)

    DataContractJsonSerializer是.NET自带的类,在解析JSON格式的时候使用起来方便快捷,至于生成方面由于暂时没用到就没去看了.使用需要引用System.Runtime.Ser ...

随机推荐

  1. 深入理解C语言

    语言只是一种工具,任何语言之间都是相通的,一通则百通,关键是要理解语言背后的思想,理解其思想,任何语言,拿来用就行了.语言没有好坏之分,任何语言既然存在自然有它存在的价值. 在一个到处是OOP的年代, ...

  2. C++变量和函数

    变量可根据作用域和类型分为 (动态)全局变量,静态全局变量,(动态)局部变量,静态局部变量 全局变量:定义在函数外,在源程序其他cpp文件中访问需要extern修饰 静态局部变量:生命周期相比局部变量 ...

  3. 《100种过度医疗大公开》:转译自日文版,日文版依据的是美国的“Choosing Wisely”项目。三星推荐

    本书转译自日文,日文版则是在美国的“Choosing Wisely”项目中选择了100个相对常见的过度医疗项目做解说.Choosing Wisely项目,是由美国多个专业医学组织发起的列出过度医疗项目 ...

  4. C++11 之 override

    1  公有继承 派生类公有继承自 (public inheritance) 基类,继承包含两部分:一是函数的 "接口" (interface),二是函数的 "实现&quo ...

  5. AC日记——鬼谷子的钱袋 codevs 2998

    2998 鬼谷子的钱袋 2006年省队选拔赛湖南  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master    题目描述 Description 鬼谷子非常聪明,正 ...

  6. GitHub 下载文件夹

    工具 TortoiseSVN 步骤 1.打开要下载的项目,选中要下载的文件夹,右键 选择 复制链接地址 2.把链接中的 tree/master 改成 trunk ,(trunk是master分支,可以 ...

  7. [转]mysql 乱码问题解决终结

    http://www.th7.cn/db/mysql/2011-07-07/9217.shtml 查看 MYSQL的字符设置,在SQL查询界面输入 SHOW VARIABLES LIKE 'chara ...

  8. 一行代码远离Google浏览器兼容问题的困扰

    跟Html相比,Web Flash开发的最大优势就在于兼容性好,因为FlashPlayer的开发商只有Adobe一家.但自从Google插了一脚进来,改版出自己的FlashPlayer以后,这一优势就 ...

  9. luogu1328[NOIP2014 T1]生活大爆炸版石头剪刀布

    题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...

  10. CSS3硬件加速需要注意的事项

    webkit浏览器会把所有需要动画的元素放到复合层中渲染,另外以下两种情况也会使不需要动画的元素也放到复合层中渲染,这样会导致元素动画不流畅(原则是需要的动画才让它在复合层中渲染) 1,元素有一个包含 ...