php json轉數組的例子

來源:互聯網
上載者:User

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.111cn.net');
$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));

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.