当前位置:首页 > PHP教程 > php数组 > 列表

php json转数组的例子

发布:smiling 来源: PHP粉丝网  添加日期:2016-08-25 14:37:06 浏览: 评论:0 

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

PHP中将数组转变成Json

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

例如,代码如下:

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

程序将打印出:

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

再看下面的例子:

  1. $array = array(0 => "Eric", 1 => 23);   
  2. 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(中间是数字零).

例子,代码如下:

  1. $json_arr = array('WebName'=>'PHP网站开发教程网','WebSite'=>'http://www.phpfensi.com');  
  2. $php_json = json_encode($json_arr);  //把php数组格式转换成 json 格式的数据 
  3. echo $php_json;  
  4. $php_json = json_decode($php_json);   //再把json格式的数据转换成php数组 
  5. 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,代码如下:

  1. $a = <<<EOD  
  2. {  
  3.     "scoreInfo": {  
  4.         "isB2cSeller": true,  
  5.         "noMark": false,  
  6.         "merchandisScore""5.0",  
  7.         "merchandisTotal": 1,  
  8.         "width": 100  
  9.     },  
  10.     "rateListInfo": {  
  11.         "watershed": 100,  
  12.         "paginator": {  
  13.             "beginIndex": 1,  
  14.             "endIndex": 1,  
  15.             "firstPage": 1,  
  16.             "items": 1,  
  17.             "itemsPerPage": 8,  
  18.             "lastPage": 1,  
  19.             "length": 1,  
  20.             "offset": 0,  
  21.             "page": 1,  
  22.             "pages": 1  
  23.         },  
  24.         "rateList": [  
  25.             {  
  26.                 "aliMallSeller": false,  
  27.                 "anony": true,  
  28.                 "auctionSku""颜色分类:蓝+黑;尺码:36",  
  29.                 "award""",  
  30.                 "b2CSeller": false,  
  31.                 "dispalyRateLevel1": 0,  
  32.                 "dispalyRateLevel2": 0,  
  33.                 "dispalyRateSum": 0,  
  34.                 "displayRatePic""",  
  35.                 "displayUserLink""http://i.taobao.com/u/MTExNTE1Mjk5MQ==/tlive/taodan_list.htm?from=rate",  
  36.                 "displayUserNick""l***1",  
  37.                 "displayUserNumId": 0,  
  38.                 "displayUserRateLink""http://rate.taobao.com/rate.htm?user_id=0&rater=1",  
  39.                 "displayUserSeller": false,  
  40.                 "fee dAppendedDO": null,  
  41.                 "fromB2cMapping": false,  
  42.                 "fromMall": false,  
  43.                 "fromOnePai": false,  
  44.                 "fromVirtualHurling": false,  
  45.                 "gapDates": 0,  
  46.                 "id": 63810867055,  
  47.                 "rateContent""卖家的服务态度真好,你家的鞋子更是超值,5分,还要在买别的款。",  
  48.                 "rateDate""2013.04.14 16:50:11",  
  49.                 "rateResult": 1,  
  50.                 "ratedUserNumId": 361988210,  
  51.                 "reply""",  
  52.                 "shareInfo": null,  
  53.                 "tag""",  
  54.                 "tradeClosingdate": null,  
  55.                 "type": 0,  
  56.                 "userVipLevel": 0  
  57.             }  
  58.         ],  
  59.         "showMore": 0  
  60.     },  
  61.     "babyRateJsonList""uri: /detailRate.vm cacheTime: 2013-04-26 22:07:24 key: 9fb7a9a5d419da77465797ce1809367c cacheArea: 531 aliveTime: 14400 cacheType: PAGE_CACHE_PAGE_TYPE",  
  62.     "detailRate""uri: /detailRate.vm cacheTime: 2013-04-26 22:07:24 key: 9fb7a9a5d419da77465797ce1809367c cacheArea: 531 aliveTime: 14400 cacheType: PAGE_CACHE_PAGE_TYPE" 
  63. }  
  64. EOD;  
  65. var_dump(json_decode($a,1)); 

Tags: json php转数组

分享到: