中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么理解PHP中JSON的編碼與轉碼

發布時間:2021-11-04 11:17:06 來源:億速云 閱讀:399 作者:iii 欄目:編程語言

這篇文章主要介紹“怎么理解PHP中JSON的編碼與轉碼”,在日常操作中,相信很多人在怎么理解PHP中JSON的編碼與轉碼問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么理解PHP中JSON的編碼與轉碼”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

怎么理解PHP中JSON的編碼與轉碼

JSON是什么

JSON 主要用于傳送數據,它是一種輕量級的數據交換的格式,它能夠完全的不同于PHP的編程語言來進行儲存和表示數據。

它比較容易閱讀和編寫,同時JSON對于機器的解析和生成也是比較簡單,通過JSON能夠十分有效的提高數據之間傳送的效率。

我們在PHP中已經有內置的JSON拓展,接下來我們就來看一下PHP中的JSON函數,應該如何使用PHP語言來編碼JSON對象。

json_encode()JSON編碼

在PHP中的json_encode()是用來對變量進行JSON編碼的,該函數的基本語法格式如下:

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

其中需要注意的是:運行json_encode()函數成功的話,返回的結果就是JSON的數據,如果運行錯誤,返回的結果是false;

參數$value表示的就是需要進行編碼的值,其中json_encode()比較特殊的是,只有UTF-8 編碼的數據對該函數有效,參數options表示的是由常量組成的二進制的掩碼,這些常量有:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT

接下來我們通過示例來看一下PHP中json_encode()函數的使用,也就是將PHP的數組元素轉換為JSON格式的數據,示例如下:

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
   $arr1 = array('一' => 1, '二' => 2, '三' => 3, '四' => 4, '五' => 5);
   echo json_encode($arr1);
?>

輸出結果:

怎么理解PHP中JSON的編碼與轉碼

由上述示例我們能夠看到,通過json_encode()能夠將PHP的數組元素轉換為JSON合適的數據,而且只有UTF-8 編碼的數據對該函數有效。

上述示例轉換的是PHP中的一維數組,接下來我們看一下多維數組轉換的結果是什么樣的,示例如下:

<?php
$arr_2 = array();
// 三維數組
$arr_2['member']['lisi']['job'] = "worker";
$arr_2['member']['lisi']['age'] = 30;
$arr_2['member']['wangwu']['job'] = "student";
$arr_2['member']['wangwu']['age'] = 10;
 
echo json_encode($arr_2);
//{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}}
  ?>

輸出結果:

怎么理解PHP中JSON的編碼與轉碼

上述示例是通過函數將PHP中的數組元素進行轉換,接下來我們看一下將PHP對象轉換為JSON格式的數據,示例如下:

<?php
class Person{
    public $name = "public name";
    protected $ptName = "protected name";
    private $pName = "private name";
 
    public function sayName(){
        return $this->name;
    }
}
$person1 = new Person();
echo json_encode($person1);//{"name":"public name"}
  ?>

輸出結果:

怎么理解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);
?>

輸出結果:

怎么理解PHP中JSON的編碼與轉碼

由此我們便通過json_encode()函數完成了PHP中對象轉換為JSON格式。

json_decode()JSON解碼

PHP中能夠通過json_decode()函數來對JSON格式的字符換進行轉換成PHP的變量格式,這也就是解碼。下面我們看一下json_decode()函數的基本語法格式,示例如下:

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

其中需要注意的是:參數json_string表示需要進行轉換也就是解碼的JSON格式的字符串,同json_encode()函數一樣,這個進行解碼的數據也必須是UTF-8的編碼數據;參數assoc表示當參數是true的時候,返回的結果是個數組,當參數是false是返回的結果是對象;

參數depth表示的是整數類型的參數,參數options表示的是二進制的掩碼,與json_encode()不同的是該函數目前沒有支持這么多,目前只支持 JSON_BIGINT_AS_STRING

接下來我們通過示例來看一下PHP怎樣解碼,示例如下:

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>

輸出結果:

怎么理解PHP中JSON的編碼與轉碼

通過上述示例我們看到了通過json_decode()對JSON進行解碼,上述是解碼成數組,下面我們看一下解碼成對象,示例如下:

<?php
$jsonStr = '{"key1":"value1","key2":"value2"}';
print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2
?>

輸出結果:

怎么理解PHP中JSON的編碼與轉碼

由此我們便通過json_encode()函數與json_decode()函數完成了PHP數據與JSON的編碼與解碼。

到此,關于“怎么理解PHP中JSON的編碼與轉碼”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

攀枝花市| 滦平县| 兴隆县| 新巴尔虎左旗| 永丰县| 湖口县| 盐城市| 上犹县| 睢宁县| 和田市| 随州市| 沽源县| 乳山市| 华亭县| 沛县| 平顶山市| 仪征市| 厦门市| 上蔡县| 峨眉山市| 玛多县| 循化| 宝应县| 东安县| 揭西县| 海丰县| 蚌埠市| 临城县| 石林| 丹凤县| 石阡县| 全州县| 乳山市| 托里县| 简阳市| 新沂市| 柞水县| 卢湾区| 龙里县| 灵寿县| 祁门县|