json_decode()函數(shù)是PHP中的內(nèi)置函數(shù),用于解碼JSON字符串。它將JSON編碼的字符串轉(zhuǎn)換為PHP變量。
用法:
json_decode( $json, $assoc = FALSE, $depth = 512, $options = 0 )
參數(shù):該函數(shù)接受上述和以下所述的四個(gè)參數(shù):
json:它包含需要解碼的JSON字符串。它僅適用于UTF-8編碼的字符串。
assoc:它是一個(gè)布爾變量。如果為true,則返回的對(duì)象將轉(zhuǎn)換為關(guān)聯(lián)數(shù)組。
depth:它規(guī)定了用戶指定的遞歸深度。
options:它包括JSON_OBJECT_AS_ARRAY,JSON_BIGINT_AS_STRING,JSON_THROW_ON_ERROR的位掩碼。
返回值:此函數(shù)以適當(dāng)?shù)腜HP類型返回編碼的JSON值。如果無法解碼json或編碼數(shù)據(jù)比遞歸限制深,則它將返回NULL。
以下示例說明了PHP中json_decode()函數(shù)的用法:
示例1:
// Declare a json string
$json = '{"g":7, "e":5, "e":5, "k":11, "s":19}';
// Use json_decode() function to
// decode a string
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
輸出:
object(stdClass)#1 (4) {
["g"]=>
int(7)
["e"]=>
int(5)
["k"]=>
int(11)
["s"]=>
int(19)
}
array(4) {
["g"]=>
int(7)
["e"]=>
int(5)
["k"]=>
int(11)
["s"]=>
int(19)
}
示例2:
// Declare a json string
$json = '{"geeks": 7551119}';
// Use json_decode() function to
// decode a string
$obj = json_decode($json);
// Display the value of json object
print $obj->{'geeks'};
?>
輸出:
7551119
使用json_decode()函數(shù)時(shí)的常見錯(cuò)誤:
使用的字符串是有效的JavaScript,但不是有效的JSON。
名稱和值必須用雙引號(hào)引起來,不允許使用單引號(hào)。
不允許使用逗號(hào)結(jié)尾。