国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP JSON

json是什么?

JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,主要用于傳送數(shù)據(jù)。
JSON 可以將 JavaScript 對(duì)象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個(gè)字符串,或者在異步應(yīng)用程序中將字符串從 Web 客戶機(jī)傳遞給服務(wù)器端程序。這個(gè)字符串看起來有點(diǎn)兒古怪,但是 JavaScript 很容易解釋它,而且 JSON 可以表示比"名稱 / 值對(duì)"更復(fù)雜的結(jié)構(gòu)。例如,可以表示數(shù)組和復(fù)雜的對(duì)象,而不僅僅是鍵和值的簡(jiǎn)單列表。

本章節(jié)作為了解,不用重點(diǎn)掌握。

環(huán)境配置

在 php5.2.0 及以上版本已經(jīng)內(nèi)置 JSON 擴(kuò)展。


JSON 函數(shù)


QQ截圖20161009100513.png

json_encode

PHP json_encode() 用于對(duì)變量進(jìn)行 JSON 編碼,該函數(shù)如果執(zhí)行成功返回 JSON 數(shù)據(jù),否則返回 FALSE 。

語法

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

參數(shù)

·???????? value: 要編碼的值。該函數(shù)只對(duì) UTF-8 編碼的數(shù)據(jù)有效。

·???????? 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

實(shí)例

以下實(shí)例演示了如何將 PHP 數(shù)組轉(zhuǎn)換為 JSON 格式數(shù)據(jù):

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

以上代碼執(zhí)行結(jié)果為:

{"a":1,"b":2,"c":3,"d":4,"e":5}

以下實(shí)例演示了如何將 PHP 對(duì)象轉(zhuǎn)換為 JSON 格式數(shù)據(jù):

<?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);
?>

以上代碼執(zhí)行結(jié)果為:

{"name":"sachin","hobbies":"sports","birthdate":"08/05/1974 12:20:03 pm"}


json_decode

PHP json_decode() 函數(shù)用于對(duì) JSON 格式的字符串進(jìn)行解碼,并轉(zhuǎn)換為 PHP 變量。

語法

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

參數(shù)

·???????? json_string: 待解碼的 JSON 字符串,必須是 UTF-8 編碼數(shù)據(jù)

·???????? assoc: 當(dāng)該參數(shù)為 TRUE 時(shí),將返回?cái)?shù)組,F(xiàn)ALSE 時(shí)返回對(duì)象。

·???????? depth: 整數(shù)類型的參數(shù),它指定遞歸深度

·???????? options: 二進(jìn)制掩碼,目前只支持 JSON_BIGINT_AS_STRING 。

實(shí)例

以下實(shí)例演示了如何解碼 JSON 數(shù)據(jù):

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

以上代碼執(zhí)行結(jié)果為:

object(stdClass)#1 (5) {

??? ["a"] => int(1)

??? ["b"] => int(2)

??? ["c"] => int(3)

??? ["d"] => int(4)

??? ["e"] => int(5)

}

?

array(5) {

??? ["a"] => int(1)

??? ["b"] => int(2)

??? ["c"] => int(3)

??? ["d"] => int(4)

??? ["e"] => int(5)

}

?

PHP中Json格式規(guī)則

?

- 并列的數(shù)據(jù)之間用逗號(hào)(”, “)分隔?
- 映射用冒號(hào)(”: “)表示?
- 并列數(shù)據(jù)的集合(數(shù)組)用方括號(hào)(“[]”)表示?
- 映射的集合(對(duì)象)用大括號(hào)(”{}”)表示

?

下面這句話:?
“北京市的面積為16800平方公里,常住人口1600萬人。上海市的面積為6400平方公里,常住人口1800萬?!?
寫成json格式就是這樣:

[

  {"城市":"北京","面積":16800,"人口":1600},

  {"城市":"上海","面積":6400,"人口":1800}

]

PHP中操作json的函數(shù)

加密 ? ? ?json_encode

解密 ? ? ?json_decode

一維數(shù)組到j(luò)son數(shù)據(jù)格式的轉(zhuǎn)換

<?php
$arr_1 = array();
$arr_1['username'] = 'lisi';
$arr_1['age'] = 20;
echo json_encode($arr_1);//{"username":"lisi","age":20}
  ?>

多維數(shù)組到j(luò)son數(shù)據(jù)格式的轉(zhuǎn)換

<?php
$arr_2 = array();
// 三維數(shù)組
$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}}}
  ?>

?

對(duì)象到j(luò)son數(shù)據(jù)格式的轉(zhuǎn)換

對(duì)象轉(zhuǎn)化為json數(shù)據(jù)時(shí),只轉(zhuǎn)換公有變量,私有變量不轉(zhuǎn)換

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

?

轉(zhuǎn)換json數(shù)據(jù)格式到對(duì)象類型

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

轉(zhuǎn)換json數(shù)據(jù)格式到數(shù)組類型

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

json_decode($jsonStr,true); 第二個(gè)參數(shù)如果是true ,那么結(jié)果會(huì)被轉(zhuǎn)換為array類型,參數(shù)默認(rèn)為false,默認(rèn)轉(zhuǎn)換為對(duì)象


繼續(xù)學(xué)習(xí)
||
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>
提交重置代碼