zoukankan      html  css  js  c++  java
  • php 解析json

    今天做项目的时候需要用到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/>';//显示数组长度
  • 相关阅读:
    [Effective C++]条款01:视C++为一个语言联邦
    DOTNET
    simulation
    掩码
    motorsimsrc
    Unprivileged User's Account
    LAN WAN
    calloc malloc realloc
    useradd
    change user ID and group ID
  • 原文地址:https://www.cnblogs.com/wobeinianqing/p/5319019.html
Copyright © 2011-2022 走看看