国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php輸出json格式數據的例子

2024-05-04 21:47:44
字體:
來源:轉載
供稿:網友

php直接輸出json格式,很多新手有一個誤區,以為用echo json_encode($data);這樣就是輸出json數據了,沒錯這樣輸出文本是json格式文本而不是json數據,正確的寫法是應該加一句,我們要在利用Content-type:text/json才可以正常顯示是json數據.

PHP實例代碼如下:

  1. <?php 
  2. header(‘Content-type:text/json’);//這句是重點,它告訴接收數據的對象此頁面輸出的是json數據; 
  3. $json={“n”:”name”,”p”:”password”};//雖然這行數據形式上是json格式,如果沒有上面那句的話,它是不會被當做json格式的數據被處理的; 
  4. echo $json;   
  5. ?> 

json_encode當然也可以輸入json字符串了,下面看幾個例子.

PHP生成JSON的函數是:json_encode($PHPcode);

PHP解析JSON的函數是:json_decode($JSONcode);

所以JSON的形式有多種,不同的形式在PHP解釋出來后的形式也是不同的.

形式1:完全是對象的形式,這種形式的數據在Javascript中又叫相關數組,與一般數組不同的是,它可以通過字符串作索引來訪問(用“[]”或“.”來表示層級),代碼如下:

  1. $json='{"item1":{"item11":{"n":"chenling","m":"llll"},"sex":"www.111cn.net","age":"25"},"item2":{"item21":"ling","sex":"女","age":"24"}}'
  2. $J=json_decode($json); 
  3. print_r($J);  
  4. /*將輸出: 
  5. stdClass Object 
  6. ( 
  7.   [item1] => stdClass Object 
  8.   ( 
  9.    [item11] => stdClass Object 
  10.    ( 
  11.      [n] => chenling 
  12.      [m] => llll 
  13.    ) 
  14.  
  15.    [sex] => m.survivalescaperooms.com 
  16.    [age] => 25 
  17.   ) 
  18.  
  19.   [item2] => stdClass Object 
  20.   ( 
  21.    [item21] => ling 
  22.    [sex] => 女 
  23.    [age] => 24 
  24.   ) 
  25. )*/ 

比如說我要取得了值是chenling的那個屬性,則應該這樣訪問:

$J->item1->item11->n;//這將取得屬性n的值:chenling

其實這種訪問形式跟訪問普通的對象屬性差不多,也相當于訪問一個3維數組.

形式2:對象和數組混合,代碼如下:

  1. $json='{"item1":[{"name":[{"chen":"chenling","ling":"chenli"}],"sex":"男","age":"25"},{"name":"sun","sex":"女","age":"24"}]}'
  2. $J=json_decode($json); 
  3. print_r($J);  
  4. /*將輸出: 
  5. stdClass Object 
  6. ( 
  7.   [item1] => Array 
  8.   ( 
  9.    [0] => stdClass Object 
  10.    ( 
  11.      [name] => Array 
  12.      ( 
  13.        [0] => stdClass Object 
  14.        ( 
  15.          [chen] => chenling 
  16.          [ling] => chenli 
  17.        ) 
  18.  
  19.      ) 
  20.  
  21.      [sex] => 男 
  22.      [age] => 25 
  23.    ) 
  24.  
  25.    [1] => stdClass Object 
  26.    ( 
  27.      [name] => sun 
  28.      [sex] => 女 
  29.      [age] => 24 
  30.    ) 
  31.  
  32.   ) 
  33.  
  34. )*/ 

比如說我要取得了值是chenling的那個元素,則應該這樣訪問:

$J->item1[0]->name[0]->chen;//這將取得元素chen的值:chenling

其實這種訪問形式結合了對象和數組的訪問方式,也相當于訪問一個5維數組.

形式3:完全數組形式,代碼如下:

  1. $json='[["item1","item11"],["n","chenling"],["m","llll"]]'
  2. $J=json_decode($json); 
  3. print_r($J);  
  4. /*將輸出: 
  5. Array 
  6. ( 
  7.   [0] => Array 
  8.   ( 
  9.     [0] => item1 
  10.     [1] => item11 
  11.   ) 
  12.  
  13.   [1] => Array 
  14.   ( 
  15.     [0] => n 
  16.     [1] => chenling 
  17.   ) 
  18.  
  19.   [2] => Array 
  20.   ( 
  21.     [0] => m 
  22.     [1] => llll 
  23.   ) 
  24. )*/ 

比如說我要取得了值是chenling的那個元素,則應該這樣訪問:

$J[0][1];//這將取得元素值chenling的那個元素

但是用這種方式有一個缺點,就是無法用字符串作為索引,只能用數字,用完全對象的形式可以解決這個問題.其實這種訪問形式就是數組的訪問方式,相當于訪問一個2維數組.

小結:從上面的例子可以看出JSON有點類似XML,也可以在PHP和Javascript之間傳遞帶結構的數據,使用起來很方便.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建平县| 汝阳县| 阿尔山市| 沂源县| 吉林市| 南汇区| 桐乡市| 福建省| 天祝| 邵阳县| 鞍山市| 黄冈市| 吕梁市| 清丰县| 拉孜县| 塔河县| 尉氏县| 青浦区| 津南区| 监利县| 永春县| 文水县| 信阳市| 定远县| 库伦旗| 竹山县| 宝兴县| 阿荣旗| 镶黄旗| 保定市| 彰武县| 会理县| 大姚县| 孟村| 正蓝旗| 祁连县| 梓潼县| 建昌县| 阳山县| 南京市| 新干县|