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

HostKvm5.95美元起,香港、韩国可选

HostKvm发布了夏季特别促销活动,针对香港国际/韩国机房VPS主机提供7折优惠码,其他机房全场8折,优惠后2GB内存套餐月付仅5.95美元起。这是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。下面分享几款香港VPS和韩国VPS的配置和价格信息。...

ReliableSite:美国服务器租用,洛杉矶/纽约/迈阿密等机房;E3-1240V6/64GB/1TSSD,$95/月

reliablesite怎么样?reliablesite是一家于2006年成立的老牌美国主机商,主要提供独服,数据中心有迈阿密、纽约、洛杉矶等,均免费提供20Gbps DDoS防护,150TB月流量,1Gbps带宽。月付19美金可升级为10Gbps带宽。洛杉矶/纽约/迈阿密等机房,E3-1240V6/64GB内存/1TB SSD硬盘/DDOS/150TB流量/1Gbps带宽/DDOS,$95/月,...

湖北50G防御物理服务器( 199元/月 ),国内便宜的高防服务器

4324云是成立于2012年的老牌商家,主要经营国内服务器资源,是目前国内实力很强的商家,从价格上就可以看出来商家实力,这次商家给大家带来了全网最便宜的物理服务器。只能说用叹为观止形容。官网地址 点击进入由于是活动套餐 本款产品需要联系QQ客服 购买 QQ 800083597 QQ 2772347271CPU内存硬盘带宽IP防御价格e5 2630 12核16GBSSD 500GB​30M​1个IP...

json_encode为你推荐
美女桌面背景图片非主流美女手机壁纸p图软件哪个好用美图P图软件哪个好,你们用哪个天气预报哪个好用哪个最准确最准天气预报软件排行是怎样的?苹果x和xr哪个好iphone X和iphone XR哪个比较好?买哪个合适?压缩软件哪个好安卓手机哪一款解压缩软件比较好用?谢谢!宝来和朗逸哪个好新宝来和新朗逸选哪个?好纠结!!尼康和佳能单反哪个好尼康和佳能哪个好清理手机垃圾软件哪个好清理手机垃圾的软件哪个好google广告申请谷歌广告怎么申请?google广告申请申请Google广告要多长时间呢
域名大全 手机域名注册 服务器租用托管 地址大全 全能主机 骨干网络 空间出租 有奖调查 cn3 爱奇艺vip免费领取 绍兴电信 便宜空间 阿里云免费邮箱 photobucket 买空间网 卡巴斯基试用版下载 rewritecond 蓝队云 hosting24 register.com 更多