溫馨提示×

溫馨提示×

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

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

PHP中json_encode與json_decode有什么區(qū)別

發(fā)布時間:2020-07-20 14:12:59 來源:億速云 閱讀:200 作者:Leah 欄目:編程語言

本篇文章為大家展示了PHP中json_encode與json_decode有什么區(qū)別,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

PHP中json_encode與json_decode有什么區(qū)別

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

  • 語法:json_encode($value[,$options=0])
  • 注意:  1、$value為要編碼的值,且該函數(shù)只對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、第二個參數(shù)一般不需要;
          4、json數(shù)據(jù)其實就是一個string,可以用var_dump()打印出來看數(shù)據(jù)類型;
          5、執(zhí)行成功返回JSON數(shù)據(jù),否則返回FALSE。   

示例:

$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
$json = json_encode($book);
echo $json;

  瀏覽器打印出的結(jié)果如下:

{"a":"xiyouji","b":"sanguo","c":"shuihu","d":"hongloumeng"}

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

  • 語法:json_decode($json[,$assoc=false[,$depth=512[,$options=0]]])
  • 注意:1、$json 為待解碼的數(shù)據(jù),必須為utf8編碼的數(shù)據(jù);
        2、$assoc 值為TRUE時返回數(shù)組,F(xiàn)ALSE時返回對象;
        3、$depth 為遞歸深度;
        4、$option二進(jìn)制掩碼,目前只支持 JSON_BIGINT_AS_STRING;
        5、一般只用前面兩個參數(shù),如果要數(shù)據(jù)類型的數(shù)據(jù)要加一個參數(shù)true。

示例:

$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" }

兩個結(jié)果看起來沒多大區(qū)別,但調(diào)用里面的元素時,array和obj的方式是不同的?! ?/p>

$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)用對象元素

 打印結(jié)果如下:

string(6) "sanguo" string(6) "shuihu"


上述內(nèi)容就是PHP中json_encode與json_decode有什么區(qū)別,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

AI