今天做项目的时候需要用到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. ELF Format 笔记(五)—— 特殊 Section

    ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 链接器把一些独立的 object files 和库文件链接起来,形成可执行文件.在这个过程中,链接器需要解决 ...

  2. jquery常用方法

    一.多个按钮绑定同一事件 $("#index_svip,#index_svip_renew").click(function() { seajs.use(['svipLayer'] ...

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

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

  4. [转]Asp.net MVC使用Filter解除Session, Cookie等依赖

    本文转自:http://www.cnblogs.com/JustRun1983/p/3279139.html 本文,介绍了Filter在MVC请求的生命周期中的作用和角色,以及Filter的一些常用应 ...

  5. RCC BUCK变压器设计

    RCC电路工作于临界模式,不是固定工作频率,其设计遵从BUCK原理.Buck电路在最高输入电压时为电感最恶劣工作条件: 以下图为例: 1.首先设定如下参数:输入电压Vin,输出电压Iout,工作频率f ...

  6. hdu3065 病毒侵袭持续中

    题目地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=3065 题目: 病毒侵袭持续中 Time Limit: 2000/1000 MS (Java ...

  7. 新闻发布系统<分页>

    分页实现: 实现数据的分页显示,需要以下几个关键步骤: ①确定每页显示的总页数 ②计算显示的总页数 ③编写SQL语句 实现效果如图所示: 当点击下一页时,地址栏地址为?pageIndex=2 1.创建 ...

  8. Unity3D中的线性插值Lerp()函数解析

    http://www.cnblogs.com/rongweijun/p/5739074.html

  9. easyUI的dateBox控制时间格式

    <input type='text' name='yearQuery' class='easyui-datebox ' data-options="formatter:myformat ...

  10. Maven学习(九)插件介绍

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的.进一步说,每个任务对应了 ...