目前,JSON已經成為最受歡迎的資料交換格式之一,各大網站的API幾乎都支援它。
本章節我們將為大家介紹如何使用 PHP 語言來編碼和解碼 JSON 物件。
從5.2版本開始,PHP原生提供json_encode()和json_decode()函數,前者用於編碼,後者用於解碼。
函數 描述
json_encode _對變數為變數的解碼,轉換為PHP 變數
json_last_error 回傳最後發生的錯誤
一、json_encode()
語法
string json_encode ( $value [, $options = 0 ] )
參數
value: 要編碼的值。此函數只對 UTF-8 編碼的資料有效。
options:由以下常數組成的二進位遮罩:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT,一個陣列轉換的範例:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr);
結果為
{"a":1,"b":2,"c":3,"d":4,"e":5}
再看一個物件轉換的範例:
$obj->body = 'another post'; $obj->id = 21; $obj->approved = true; $obj->favorite_count = 1; $obj->status = NULL; echo json_encode($obj);
結果為
{ "body":"another post", "id":21, "approved":true, "favorite_count":1, "status":null }
二. json_decode()
PHP json_decode() 函數用於對JSON 格式的字串進行解碼,並轉換為PHP 變數。
語法
參數
json_string: 字串必須是的JDg 8 編碼資料
assoc: 當此參數為TRUE 時,將傳回數組,FALSE 時傳回物件。
depth: 整數類型的參數,它指定遞歸深度
options: 二進位掩碼,目前只支援 JSON_BIGINT_AS_STRING 。
實例 以下實例示範如何解碼 JSON 資料:以上程式碼執行結果為:
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) }