在介紹這兩個函數之前,我還是想說json。不知道大家對json了解多少,感覺自己接觸php一段時間後,就已經對json有些印象,但僅僅是印象而已,我只知道它是一種資料類型,比較輕量。但是對於它的結構,我真的是模糊不清,直到現在使用它,我才了解到,所以:實踐是檢驗你是否獲得真知的一種非常有效的方法。
一:首先是json_encode(),意思是將資料轉換為json格式,那麼什麼型別資料可以轉換成json格式呢
1.物件。
定義一個class,new一個對象,可以將物件轉換為json格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php
class Emp {
public $name = "" ;
public $hobbies = "" ;
public $birthdate = "" ;
}
$e = new Emp();
$e ->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 );
?>
|
登入後複製
結果
1 | { "name" : "sachin" , "hobbies" : "sports" , "birthdate" : "08\/05\/1974 12:20:03 pm" }
|
登入後複製
2.陣列。
定義一個鍵值對數組
1 2 3 4 | <?php
$arr = array ('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode( $arr );
?>
|
登入後複製
結果
1 | { "a" :1, "b" :2, "c" :3, "d" :4, "e" :5}
|
登入後複製
我們可以知道都是轉為了json格式數據,其實重點不在於結果相同,因為都是轉為json麼。 。我們要知道的是可以轉為json格式的資料型別是物件和鍵值對數組
二:其次是json_decode()。 對 JSON 格式的字串進行解碼,並轉換為 PHP 變數。
先上程式碼
1 2 3 4 5 6 | <!--?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode( $json ));
var_dump(json_decode( $json , true));
?-->
|
登入後複製
列印結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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中文網其他相關文章!