php json转数组的例子

   2016-09-14 0
核心提示:php json转数组是一个非常方便实现的因为json存储的格式有规则的所以php也自带了函数了,我们只需要使用对应的函数就可以实现了,具体如下。PHP中将数组转变成Json强大的PHP已经提供了内置函数:json_encode() 和 json_decode()。很容易理解,json_encode()就

php json转数组是一个非常方便实现的因为json存储的格式有规则的所以php也自带了函数了,我们只需要使用对应的函数就可以实现了,具体如下。

PHP中将数组转变成Json

强大的PHP已经提供了内置函数:json_encode() 和 json_decode()。很容易理解,json_encode()就是将PHP数组转换成Json。相反,json_decode()就是将Json转换成PHP数组。

例如,代码如下:

$array = array("name" => "Eric","age" => 23);   
echo json_encode($array);

程序将打印出:

{“name”:”Eric”,”age”:23}

再看下面的例子:

$array = array(0 => "Eric", 1 => 23);   
echo json_encode($array);

程序将打印出 :["Eric",23]

以上两个例子可以看出,如果PHP数组的键都是数字,那么json_encode()返回一个数组形式的Json,如果PHP数组的键全是字符串,那么json_encode()就会返回一个对象形式的Json,刚已经说过,两者在js中的调用是不同的.

事实上,只要在PHP数组的键中有一个字符串形式的键,那么json_encode()就会返回对象形式的Json,这是不正确的,因为,虽然在PHP代码中不会出现错误,但要是将这样的Json传给JS函数,JS会将此Json当做一个对象,而对象是不可能以数字作为属性名的,也就是说JS 不知道这是什么:user.0.username(中间是数字零).

例子,代码如下:

$json_arr = array('WebName'=>'PHP网站开发教程网','WebSite'=>'http://www.php-z.com');  
$php_json = json_encode($json_arr);  //把php数组格式转换成 json 格式的数据 
echo $php_json;  
$php_json = json_decode($php_json);   //再把json格式的数据转换成php数组 
print_r($php_json);

json数组

$json = '[{"id":"22","name":"33","descn":"44"}]';   //json格式的数组转换成 php的数组

$arr = (Array)json_decode($json);

echo $arr[0]->id;  //用对象的方式访问

json转换数据后面参数要带ture,代码如下:

$a = <<<EOD  
{  
    "scoreInfo": {  
        "isB2cSeller": true,  
        "noMark": false,  
        "merchandisScore": "5.0",  
        "merchandisTotal": 1,  
        "width": 100  
    },  
    "rateListInfo": {  
        "watershed": 100,  
        "paginator": {  
            "beginIndex": 1,  
            "endIndex": 1,  
            "firstPage": 1,  
            "items": 1,  
            "itemsPerPage": 8,  
            "lastPage": 1,  
            "length": 1,  
            "offset": 0,  
            "page": 1,  
            "pages": 1  
        },  
        "rateList": [  
            {  
                "aliMallSeller": false,  
                "anony": true,  
                "auctionSku": "颜色分类:蓝+黑;尺码:36",  
                "award": "",  
                "b2CSeller": false,  
                "dispalyRateLevel1": 0,  
                "dispalyRateLevel2": 0,  
                "dispalyRateSum": 0,  
                "displayRatePic": "",  
                "displayUserLink": "http://i.taobao.com/u/MTExNTE1Mjk5MQ==/tlive/taodan_list.htm?from=rate",  
                "displayUserNick": "l***1",  
                "displayUserNumId": 0,  
                "displayUserRateLink": "http://rate.taobao.com/rate.htm?user_id=0&rater=1",  
                "displayUserSeller": false,  
                "fee dAppendedDO": null,  
                "fromB2cMapping": false,  
                "fromMall": false,  
                "fromOnePai": false,  
                "fromVirtualHurling": false,  
                "gapDates": 0,  
                "id": 63810867055,  
                "rateContent": "卖家的服务态度真好,你家的鞋子更是超值,5分,还要在买别的款。",  
                "rateDate": "2013.04.14 16:50:11",  
                "rateResult": 1,  
                "ratedUserNumId": 361988210,  
                "reply": "",  
                "shareInfo": null,  
                "tag": "",  
                "tradeClosingdate": null,  
                "type": 0,  
                "userVipLevel": 0  
            }  
        ],  
        "showMore": 0  
    },  
    "babyRateJsonList": "uri: /detailRate.vm cacheTime: 2013-04-26 22:07:24 key: 9fb7a9a5d419da77465797ce1809367c cacheArea: 531 aliveTime: 14400 cacheType: PAGE_CACHE_PAGE_TYPE",  
    "detailRate": "uri: /detailRate.vm cacheTime: 2013-04-26 22:07:24 key: 9fb7a9a5d419da77465797ce1809367c cacheArea: 531 aliveTime: 14400 cacheType: PAGE_CACHE_PAGE_TYPE" 
}  
EOD;  
var_dump(json_decode($a,1));
 
标签: JSON PHP
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • LUA解析json小demo
    需要修改的json数据gui-config.json{"configs": [{"server": "JP3.ISS.TF","server_port": 443,"password": "58603228","method": "aes-256-cfb","remarks": ""},{"serv
    03-16
  • typescript Json Convert
    关键代码this.data={};// json stringthis.dataStr=JSON.stringify(this.data);// json objectthis.convertData=JSON.parse(this.dataStr);示例代码示例代码参考资料TypeScript: Working with JSON
    02-09
  • nodejs package.json说明
    {"name": "test", //项目名称(必须),由小写英文字母、数字和下划线,不能含空格"version": "1.0.0", //项目版本(必须)"description": "This is for study gulp project !", //项目描述(必须)"homepage": "", //项目主页url " key
    02-09
  • PHP与java接口对接使用json格式请求 php接收pos
    PHP与java接口对接使用json格式请求$datajson = json_encode($param);$myheader= array('Content-Type: application/json; charset=utf-8','Content-Length: ' . strlen($datajson));$result = http_curl($url, 'xml', $datajson, 6, FALSE, ''
    02-09
  • php 判断一个变量是否是合法的json
    1.场景api验证前端json 类型字段合法性2.分析官网3.解决function json_validate($string) {if (is_string($string)) {@json_decode($string);return (json_last_error() === JSON_ERROR_NONE);}return false;} 
    02-09
  • ASP.NET 后台接收前台POST过来的json数据方法
     ASP.NET前后台交互之JSON数据 https://www.cnblogs.com/ensleep/p/3319756.html
    02-09
  • JSON数据的解析和生成(Rust) - zwvista
    JSON数据的解析和生成(Rust)JSON数据的解析和生成(Rust)课题将 JSON 字符串反序列化为 Persons 类(结构)的对象 ,然后将这个对象序列化为 JSON 字符串。Persons 类(结构)包含一个字段:Person 类(结构)的 persons 数组。Person 类(结构)包含两个
    02-09
  • Delphi Sysem.JSON 链式写法(转全能中间件)
    Delphi Sysem.JSON 链式写法(转全能中间件)
     链式写法有很多优点:连贯、语意集中、简洁、一气呵成、可读性强。比如要把 3.1415926 中的 59 提取为一个整数:Pi.ToString().Substring(5,2).ToInteger() 轻车熟路的感觉,让人觉得,哇!好帅的写法,牛x。      以前以为只有 TJSONBuilder 才支持链式
    02-09
  • =======服务端的数据发送和JSonStreamObject的
    现在IOCP的功能还剩下服务端数据的返回。还是采用netty的方式。netty返回数据的调用是这样的contenxt.write(TObject obj);这样将obj对象发送给客户端。 1.将回传的对象进行编码成buffer2.通过socket进行传送. 下面我贴出回传数据的过程.procedure TClientCo
    02-09
  • SuperObject(Delphi最好的JSON简析类) 扩展功能
    一直有个想法。SuperObject这么好用的Json简析类,序列化出来的Json排序是乱的。有时候想用SuperObject做保存树数据。这样一来排序都是乱乱的也就放弃了,这几天想改造一下SuperObject类。将改造过程记下。以便以后查阅。 最初想法增加ISuperObject属性SortM
    02-09
点击排行