php json转数组的例子

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_,
  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));