首頁  >  文章  >  後端開發  >  php中的json_encode()和json_decode()函數詳解

php中的json_encode()和json_decode()函數詳解

PHPz
PHPz原創
2018-03-26 10:45:2724499瀏覽

在介紹這兩個函數之前,我還是想說json。不知道大家對json了解多少,感覺自己接觸php一段時間後,就已經對json有些印象,但僅僅是印象而已,我只知道它是一種資料類型,比較輕量。但是對於它的結構,我真的是模糊不清,直到現在使用它,我才了解到,所以:實踐是檢驗你是否獲得真知的一種非常有效的方法。

一:首先是json_encode(),意思是將資料轉換為json格式,那麼什麼型別資料可以轉換成json格式呢

     1.物件。

     定義一個class,new一個對象,可以將物件轉換為json格式

name = "sachin";
   $e->hobbies  = "sports";
   $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
   $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));

   echo json_encode($e);
?>

結果

{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}

 2.陣列。

 定義一個鍵值對數組

 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
?>

結果

{"a":1,"b":2,"c":3,"d":4,"e":5}

我們可以知道都是轉為了json格式數據,其實重點不在於結果相同,因為都是轉為json麼。 。我們要知道的是可以轉為json格式的資料型別是物件和鍵值對數組

二:其次是json_decode()對 JSON 格式的字串進行解碼,並轉換為 PHP 變數。

先上程式碼

列印結果

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

這裡我們很顯然的看出第一個列印結果是一個對象,第二個是一個鍵值對數組。

這樣我們可以很好的解釋json_decode()的第二個參數:

當為true時:傳回數組;當為false(預設為false)時:傳回物件。

相關推薦:

php中關於json_encode()函數的詳解

PHP json_encode() 函數詳解及中文亂碼問題

PHP json_encode() 函數介紹

#

以上是php中的json_encode()和json_decode()函數詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn