代码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。

JustHost:俄罗斯/新西伯利亚vps,512MB内存/5GB空间/不限流量/200Mbps/KVM/自由更换IP,$1.57/月

justhost怎么样?justhost是一家俄罗斯主机商,2006年成立,提供各种主机服务,vps基于kvm,有HDD和SSD硬盘两种,特色是200Mbps不限流量(之前是100Mbps,现在升级为200Mbps)。下面是HDD硬盘的KVM VPS,性价比最高,此外还有SSD硬盘的KVM VPS,价格略高。支持Paypal付款。国内建议选择新西伯利亚或者莫斯科DataLine。支持Paypal付...

Sharktech($49/月),10G端口 32GB内存,鲨鱼机房新用户赠送$50

Sharktech 鲨鱼机房商家我们是不是算比较熟悉的,因为有很多的服务商渠道的高防服务器都是拿他们家的机器然后部署高防VPS主机的,不过这几年Sharktech商家有自己直接销售云服务器产品,比如看到有新增公有云主机有促销活动,一般有人可能买回去自己搭建虚拟主机拆分销售的,有的也是自用的。有看到不少网友在分享到鲨鱼机房商家促销活动期间,有赠送开通公有云主机$50,可以购买最低配置的,$49/月的...

FBICDN,0.1元解决伪墙/假墙攻击,超500 Gbps DDos 防御,每天免费流量高达100G,免费高防网站加速服务

最近很多网站都遭受到了伪墙/假墙攻击,导致网站流量大跌,间歇性打不开网站。这是一种新型的攻击方式,攻击者利用GWF规则漏洞,使用国内服务器绑定host的方式来触发GWF的自动过滤机制,造成GWF暂时性屏蔽你的网站和服务器IP(大概15分钟左右),使你的网站在国内无法打开,如果攻击请求不断,那么你的网站就会是一个一直无法正常访问的状态。常规解决办法:1,快速备案后使用国内服务器,2,使用国内免备案服...

json_encode为你推荐
免费送q币活动有什么活动可以免费获得QB?视频剪辑软件哪个好视频剪辑哪个软件好用加速器哪个好网络游戏加速器哪个好用行车记录仪哪个好请问行车记录仪那个牌子好?网络机顶盒哪个好什么牌子的网络机顶盒最好q空间登录QQ空间经常提示要登录?qq空间登录电脑手机上怎么登陆电脑版QQ空间yy空间登录怎么进入YY音乐空间如何增加百度收录如何快速提高百度收录量360云盘资源360云盘 百度云 微云 和彩云 那个好
本网站服务器在美国维护 132邮箱 罗马假日广场 免费申请网页 inmotionhosting 香港主机 香港cdn 56折 gomezpeer 服务器日志分析 刀片服务器是什么 双11秒杀 泉州移动 息壤代理 银盘服务是什么 申请免费空间和域名 lamp怎么读 免费个人主页 网页加速 阿里云邮箱登陆 更多