您好,登錄后才能下訂單哦!
json_decode對(duì)JSON格式的字符串進(jìn)行編碼,而json_encode對(duì)變量進(jìn)行 JSON 編碼。多人都不太了解,今天小編為了讓大家更加了解json_decode()和json_encode(),所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。
一、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è)資訊頻道哦!
免責(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)容。