PHP – json_encode, json_decode 用法

json_encode, json_decode 用法

PHP basic function,json_encode, json_decode,json格式傳遞資料,也用簡單的舉例來介紹吧!

  • json_encode
  • json_decode

json_encode

json_encode – 返回JSON表示形式的字串。
string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )
所有字串數據必須是UTF-8編碼的。

$data_array = [
  "1" => "Apple",
  "2" => "HTC",
  "3" => "Samsung",
  "4" => "ASUS",
  "5" => "Sony",
];
echo json_encode($data_array, JSON_FORCE_OBJECT);

{"1":"Apple","2":"HTC","3":"Samsung","4":"ASUS","5":"Sony"}


json_decode

json_decode – 對 JSON 格式的字符串進行編碼
mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )

json – 待解碼的 json string 格式的字符串。(此功能只能使用UTF-8編碼的數據。 )

assoc – 當該參數為 TRUE 時,將返回 array 而非 object 。

depth 深度 –  用戶指定的遞歸深度。

options 選項 – 位掩碼的JSON解碼選項。目前只JSON_BIGINT_AS_STRING支持(默認為投大整數作為浮點數)

返回JSON編碼在相應的PHP類型的值。值TRUE,FALSE和NULL(不區分大小寫)返回asTRUE,分別為FALSE和NULL。 NULL被返回或者如果JSON不能被解碼,如果編碼數據比遞歸限制更深。

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));

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 = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; 

12345

有關深度及選項這邊無講解
可請參照 PHP: json_decode – Manual

一起討論吧