溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

php中使用json_decode()和json_encode()的方法介紹

發(fā)布時(shí)間:2020-04-17 10:30:38 來(lái)源:億速云 閱讀:563 作者:小新 欄目:編程語(yǔ)言

json_decode對(duì)JSON格式的字符串進(jìn)行編碼,而json_encode對(duì)變量進(jìn)行 JSON 編碼。多人都不太了解,今天小編為了讓大家更加了解json_decode()和json_encode(),所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。

php中使用json_decode()和json_encode()的方法介紹

一、json_encode() 對(duì)變量進(jìn)行JSON編碼

語(yǔ)法:

json_encode ( $value [, $options = 0 ] )

注意:

1、$value為要編碼的值,且該函數(shù)只對(duì)UTF8編碼的數(shù)據(jù)有效;

2、options:由以下常量組成的二進(jìn)制掩碼:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT;

3、第二個(gè)參數(shù)一般不需要;

4、json數(shù)據(jù)其實(shí)就是一個(gè)string,可以用var_dump()打印出來(lái)看數(shù)據(jù)類(lèi)型;

5、執(zhí)行成功返回JSON數(shù)據(jù),否則返回FALSE。

eg:

//執(zhí)行代碼
$book = array('a'=>'lzichun','b'=>'nihao','c'=>'wohenhao','d'=>'ljlong');
$json = json_encode($book);
echo $json;

//打印出的結(jié)果
{"a":"lzichun","b":"nihao","c":"wohenhao","d":"ljlong"}

二、json_decode() 對(duì)JSON數(shù)據(jù)進(jìn)行解碼,轉(zhuǎn)換為PHP變量

語(yǔ)法:

json_decode (json[,json [,json[,assoc = false [, $depth = 512 [, $options =0 ]]])

注意:

1、$ json 為待解碼的數(shù)據(jù),必須為utf8編碼的數(shù)據(jù);

2、$ assoc 值為T(mén)RUE時(shí)返回?cái)?shù)組,F(xiàn)ALSE時(shí)返回對(duì)象;

3、$ depth 為遞歸深度;

4、$option 二進(jìn)制掩碼,目前只支持 JSON_BIGINT_AS_STRING;

5、一般只用前面兩個(gè)參數(shù),如果要數(shù)據(jù)類(lèi)型的數(shù)據(jù)要加一個(gè)參數(shù)true。

eg:

//執(zhí)行代碼
$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
        $json = json_encode($book);
        $array = json_decode($json,TRUE);
        $obj = json_decode($json);
        var_dump($array);
        var_dump($obj);
        
//打印出的結(jié)果
array(4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }
object(stdClass)#2 (4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }

兩個(gè)結(jié)果看起來(lái)沒(méi)多大區(qū)別,但調(diào)用里面的元素時(shí),array和obj的方式是不同的。

//執(zhí)行代碼
$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
$json = json_encode($book);
$array = json_decode($json,TRUE);
$obj = json_decode($json);
var_dump($array['b']);//調(diào)用數(shù)組元素
echo '<br/>';
var_dump($obj->c);//調(diào)用對(duì)象元素

//打印出的結(jié)果
string(6) "sanguo"
string(6) "shuihu"

看完上訴內(nèi)容,你們對(duì)php中使用json_decode()和json_encode()的方法介紹大概了解了嗎?如果想了解更多,歡迎關(guān)注億速云行業(yè)資訊頻道哦!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI