今天做项目的时候需要用到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. MYSQL:使用\G参数改变输出结果集的显示方式

    在mysql命令行工具中执行查询时,当表的列很多的时候显示很乱. 上面的显示你肯定看不清楚吧.以上方式是默认以列(表格)形式显示的.那怎么以行(表单)的方式显示呢,请看下面 OK,搞定. 参考文档:h ...

  2. STM32 DMA USART ADC

    转载自:http://www.cnblogs.com/UQYT/articles/2949794.html 这是一个综合的例子,演示了ADC模块.DMA模块和USART模块的基本使用. 我们在这里设置 ...

  3. (一)半小时开发一个APP

    [前言] HPP是什么? HybirdApp的简称,详细介绍参见:HPP--让所有中小企业拥有自己的APP 说白了就是用html+css+js开发app,包括ios和android版本. HBuild ...

  4. 分布式系统理论之Quorum机制

    一,Quorum机制介绍 在分布式系统中有个CAP理论,对于P(分区容忍性)而言,是实际存在 从而无法避免的.因为,分布系统中的处理不是在本机,而是网络中的许多机器相互通信,故网络分区.网络通信故障问 ...

  5. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  6. [转]关于vs调试正确。但是发布到iis就出现无法访问后天局面

    最近使用extjs+ashx进行ajax请求过程操作的时候发现一个问题..当我把程序发布到iis的时候就出现一只不执行到success回调函数. 当弹出状态值一看尽然是500.我就纳闷了.又没有语法错 ...

  7. python反弹tty shell

    linux环境下进行内外渗透需要反弹shell连接内网ssh,Telnet等,就需要tty层的shell了.python代码转过来的,备用. #!/usr/bin/python import sys ...

  8. 程序员级别鉴定书(.NET面试问答集锦)

    作为一个.NET程序员,应该知道的不仅仅是拖拽一个控件到设计时窗口中.就像一个赛车手,一定要了解他的爱车 – 能做什么不能做什么. 本文参考Scott Hanselman给出的.NET问题列表,整理如 ...

  9. div+css兼容 ie6_ie7_ie8_ie9_ie10和FireFox_Chrome等浏览器方法

    1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不要换行   ...

  10. python执行linux shell管道输出内容

    干净不留痕,用过都说好. echo "print 1+1" |python