本章節我們将為大家介紹如何使用 PHP 語言來編碼和解碼 JSON 對象。
在 php5.2.0 及以上版本已經内置 JSON 擴充。
函數
描述
json_encode
對變量進行 JSON 編碼
json_decode
對 JSON 格式的字元串進行解碼,轉換為 PHP 變量
json_last_error
傳回最後發生的錯誤
PHP json_encode() 用于對變量進行 JSON 編碼,該函數如果執行成功傳回 JSON 資料,否則傳回 FALSE 。
<b>value</b>: 要編碼的值。該函數隻對 UTF-8 編碼的資料有效。
<b>options</b>:由以下常量組成的二進制掩碼 JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。
要注意的是 JSON_UNESCAPED_UNICODE 選項,如果我們不希望中文被編碼,可以添加該選項。
以下執行個體示範了如何将 PHP 數組轉換為 JSON 格式資料:
以上代碼執行結果為:
以下執行個體示範了如何将 PHP 對象轉換為 JSON 格式資料:
<?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);
?>
$arr = array('runoob' => '菜鳥教程', 'taobao' => '淘寶網');
echo json_encode($arr); // 編碼中文
echo PHP_EOL; // 換行符
echo json_encode($arr, JSON_UNESCAPED_UNICODE); // 不編碼中文
PHP json_decode() 函數用于對 JSON 格式的字元串進行解碼,并轉換為 PHP 變量。
<b>json_string</b>: 待解碼的 JSON 字元串,必須是 UTF-8 編碼資料
<b>assoc</b>: 當該參數為 TRUE 時,将傳回數組,FALSE 時傳回對象。
<b>depth</b>: 整數類型的參數,它指定遞歸深度
<b>options</b>: 二進制掩碼,目前隻支援 JSON_BIGINT_AS_STRING 。
以下執行個體示範了如何解碼 JSON 資料:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));