代码php中json_decode()和json_encode()的使用方法

json_encode  时间:2021-01-26  阅读:()

php中json_decode()和json_encode()的

使用方法

1.json_decode()json_decode

(PHP 5>=5.2.0,PECLjson>=1.2.0)json_decode—对JSON格式的字符串进行编码

说明mixed json_decode( string$json[,bool$assoc] )

接受一个JSON格式的字符串并且把它转换为PHP变量

参数json

待解码的json string格式的字符串。as soc

当该参数为TRUE时将返回array而非object 。

返回值

Returns an object or if the optional assoc parameter is TRUE, an associative array is insteadr eturne d.

范例

Example#1 json_decode()的例子

复制代码代码如下:

<?p hp

$json='{"a":1var_dump(json_dec ode($json));var_dump(js on_dec ode($js on, true));

?>

上例将输出

复制代码代码如下: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)

}

复制代码代码如下:

$data='[{"Name":"a1"23"":""}]' ;echo json_decode($data);

结果为

复制代码代码如下:

Array( [0]=>stdClas s Object ( [Name]=>a1 [Number]=>123 [Contno]=>000[QQNo]=>)

[1]=>stdClas s Object ( [Name]=>a1 [Number]=>123 [Contno]=>000[QQNo]=>) [2]=>stdClas s Object ( [Name]=>a1 [Number]=>123 [Contno]=>000[QQNo]=>) )

可以看出经过json_dec ode()编译出来的是对象,现在输出json_dec ode($data,true)试下复制代码代码如下:echo json_dec ode($data,true);

结果

复制代码代码如下:

Array( [0]=>Array( [Name]=>a 1 [Numb er]=>123 [Contno]=>000 [Q QNo]=>) [1]=>Array( [Name]=>a 1 [Numb er]=>123[Contno]=>000[Q QNo]=>) [2]=>Array( [Name]=>a 1 [Numb er]=>123 [Contno]=>000[Q QNo]=>) )

可以看出json_dec ode($data,true)输出的一个关联数组,由此可知json_dec ode($data输出的是对象,而js on_dec ode("$arr",true)是把它强制生成PHP关联数组.

2.json_enc ode()

json_enc ode

(PHP 5>=5.2.0,PECLjson>=1.2.0)js on_enc ode—对变量进行JSON编码

Report a bug说明string json_enc ode(mixed$value [, int$options=0] )

返回value值的J SON形式

Report a bug参数value

待编码的value 除了res ourc e类型之外可以为任何数据类型

该函数只能接受UTF-8编码的数据options

由以下常量组成的二进制掩码 JSON_HEX_QUOT, J SON_HEX_TAG, J SON_HEX_AMP,J S ON_HEX_AP O S, J S ON_NUME RI C_C HEC K, J S ON_PRET TY_PRINT,JSON_UNESCAP ED_SLAS HES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICOD E.Report a bug返回值

编码成功则返回一个以JSON形式表示的string或者在失败时返回FALSE 。

Report a bug更新日志

版本说明

5.4.0 options参数增加常量 JSON_PRETTY_PRINT, JSON_UNESCAP ED_SLAS HES,和J SON_UNESCAP ED_UNICOD E。

5.3.3 options参数增加常量 J S ON_NUMERIC_C HECK。

5.3.0增加options参数.

Report a bug范例

Example#1 A json_encode()的例子

复制代码代码如下:

<?p hp

$arr=array('a'=>1);echo json_encode($arr);

?>

以上例程会输出

复制代码代码如下:

{"a":1}

Example#2 json_encode()函数中options参数的用法

复制代码代码如下:

<?p hp

$a=array('<fo o>'");echo"Normal: ", json_encode($a), "\n";echo"Tags: ", js on_enc ode($a,J SON_HEX_TAG), "\n";echo"Apos: ", json_enc ode($a, JSON_HEX_APOS), "\n";echo"Quot: ", json_encode($a,JSON_HEX_QUOT), "\n";echo"Amp: ", js on_enc ode($a,J SON_HEX_AMP), "\n";echo"Unic ode: ", json_enc ode($a, JSON_UNES CAPED_UNICO DE), "\n";echo "All: ", json_encode($a, JSON_HEX_TAG| JSON_HEX_APOS | JSON_HEX_QUOT |J S ON_HEX_AMP| J S ON_UNES C AP ED_UNICOD E), "\n\n";

$b=array();echo"Empty array output as array: ", json_enc ode($b), "\n";echo"Empty array output as object: ", json_enc ode($b,JSON_FORCE_OBJECT), "\n\n";$c=array(array(1,2,3));echo"Non-as sociative array output as array: ", json_encode($c), "\n";echo "Non-associative array output as object: ", json_encode($c, JSON_FORCE_OBJECT),"\n\n";

$d=array('foo'=>'bar', 'baz'=>'long');echo"Associative array always output as object: ", json_encode($d), "\n";echo "Associative array always output as object: ", json_encode($d, JSON_FORCE_OBJECT),"\n\n";

?>

以上例程会输出

复制代码代码如下:

Normal: ["<foo>","'bar'","\"b az\"","&b long&","\u00e9"]

Tags: ["\u003 Cfoo\u003E","'bar'","\"baz\"","&b long&","\u00 e9"]

Apos: ["<foo>","\u0027bar\u0027","\"baz\"","&b long&","\u00e9"]

Quot: ["<foo>","'bar'","\u0022baz\u0022","&b long&","\u00e9"]

Amp: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]

Unicode: ["<foo>","'bar'","\"baz\"","&blong&","é"]

All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026b long\u0026","é"]Empty array output as array: []

Empty array output as object: {}

Non-as soc iative array output as array: [[1,2,3]]

Non-as sociative array output as object: {"0":{"0":1,"1":2,"2":3}}

Associative array always output as object: {"foo":"bar","baz":"long"}

Associative array always output as object: {"foo":"bar","baz":"long"}

Examp le#3连续与非连续数组示例

复制代码代码如下:

<?p hpecho"连续数组".PHP_EOL;

$s equential=array("foo", "bar", "baz", "b long");v ar_dump(

$s equential,js on_enc ode($s equential)

);echo PHP_EOL."非连续数组".PHP_EOL;

$nons equential=array(1=>"foo",2=>"bar", 3=>"baz",4=>"blong");v ar_dump(

$nons equwww.s hanxiw ang.netential,js on_enc ode($nons equential)

);echo PHP_EOL."删除一个连续数组值的方式产生的非连续数组".PHP_EOL;uns et($s equential[1]);v ar_dump(

$s equential,js on_enc ode($s equential)

);

?>

以上例程会输出

复制代码代码如下:

连续数组

array(4) {

[0]=>string(3) "foo"

[1]=>string(3) "bar"

[2]=>s tring(3) "b az"

[3]=>string(5) "blong"

}string(27) "["foo","bar","baz","b long"]"

非连续数组array(4) {

[1]=>string(3) "foo"

[2]=>string(3) "bar"

[3]=>s tring(3) "b az"

[4]=>string(5) "blong"

}string(43) "{"1":"foo","2":"bar","3":"b az","4":"b long"}"删除一个连续数组值的方式产生的非连续数组array(3) {

[0]=>string(3) "foo"

[2]=>s tring(3) "b az"

[3]=>string(5) "blong"

}string(33) "{"0":"foo","2":"baz","3":"b long"} "

复制代码代码如下:

$obj->Name='a 1';$obj->Number='123' ;

$obj->C ontno='000' ;echo json_encode($obj);

结果为

复制代码代码如下:

{"Name":"a1"

"Numb er":"123"

"C ontno":"000"

}

可以看出json_enc ode()和json_dec ode()是编译和反编译过程注意json只接受utf-8编码的字符所以js on_enc ode()的参数必须是utf-8编码否则会得到空字符或者null。

Megalayer(月599元)限时8月香港和美国大带宽服务器

第一、香港服务器机房这里我们可以看到有提供四个大带宽方案,是全向带宽和国际带宽,前者适合除了中国大陆地区的全网地区用户可以用,后者国际带宽适合欧美地区业务。如果我们是需要大陆地区速度CN2优化的,那就需要选择常规的优化带宽方案,参考这里。CPU内存硬盘带宽流量价格选择E3-12308GB240GB SSD50M全向带宽不限999元/月方案选择E3-12308GB240GB SSD100M国际带宽不...

Asiayun:枣庄电信Asiayun美国Cera葵湾VPSvps月付,美国CERA VPS月付26元/年

亚洲云Asiayun怎么样?亚洲云成立于2021年,隶属于上海玥悠悠云计算有限公司(Yyyisp),是一家新国人IDC商家,且正规持证IDC/ISP/CDN,商家主要提供数据中心基础服务、互联网业务解决方案,及专属服务器租用、云服务器、云虚拟主机、专属服务器托管、带宽租用等产品和服务。Asiayun提供源自大陆、香港、韩国和美国等地骨干级机房优质资源,包括BGP国际多线网络,CN2点对点直连带宽以...

飞讯云E5-2678V3 64GB,湖北十堰100G高防物理机330元/月

飞讯云官网“飞讯云”是湖北飞讯网络有限公司旗下的云计算服务品牌,专注为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。飞讯云是国内为数不多具有ISP/IDC双资质的专业云计算服务商,同时持有系统软件著作权证书、CNNIC地址分配联盟成员证书,通过了ISO27001信息安全管理体系国际认证、ISO9001质量保证体系国际认证。 《中华...

json_encode为你推荐
集成显卡和独立显卡哪个好集成显卡和独立显卡是什么区别呢哪个好?法兰绒和珊瑚绒哪个好法兰绒和珊瑚绒哪个好被套好宝来和朗逸哪个好朗逸和宝来那个比较好些各方面电陶炉和电磁炉哪个好电磁炉和电陶炉哪个好? 电磁炉和电陶炉的具体区别手机浏览器哪个好用手机用哪个浏览器好一点海克斯皮肤哪个好海克斯安妮和摄魂薇恩哪个好 需要多少宝石电动牙刷哪个好电动牙刷哪个牌子比较好,不要那么贵的p图软件哪个好有什么P图工具比较好用视频软件哪个好编辑视频用什么软件最好51空间登录手机怎么登陆51空间啊
VPS之家 免费二级域名申请 个人域名备案 备案域名出售 webhostingpad 远程登陆工具 国外网站代理服务器 腾讯云分析 国外免费全能空间 hkg vip域名 香港新世界中心 海外空间 国外在线代理服务器 php服务器 阿里dns 买空间网 深圳主机托管 数据湾 nnt 更多