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

哪个好Vultr搬瓦工和Vultr97%,搬瓦工和Vultr全方位比较!

搬瓦工和Vultr哪个好?搬瓦工和Vultr都是非常火爆的国外VPS,可以说是国内网友买的最多的两家,那么搬瓦工和Vultr哪个好?如果要选择VPS,首先我们要考虑成本、服务器质量以及产品的售后服务。老玩家都知道目前在国内最受欢迎的国外VPS服务商vultr和搬瓦工口碑都很不错。搬瓦工和Vultr哪个稳定?搬瓦工和Vultr哪个速度快?为了回答这些问题,本文从线路、速度、功能、售后等多方面对比这两...

VinaHost,越南vps,国内延时100MS;不限流量100Mbps

vinahost怎么样?vinahost是一家越南的主机商家,至今已经成13年了,企业运营,老牌商家,销售VPS、虚拟主机、域名、邮箱、独立服务器等,机房全部在越南,有Viettle和VNPT两个机房,其中VNPT机房中三网直连国内的机房,他家的产品优势就是100Mbps不限流量。目前,VinaHost商家发布了新的优惠,购买虚拟主机、邮箱、云服务器、VPS超过三个月都有赠送相应的时长,最高送半年...

妮妮云(30元),美国300G防御 2核4G 107.6元,美国高速建站 2核2G

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...

json_encode为你推荐
骁龙765g和骁龙865哪个好请问苹果的a13处理器和骁龙865综合性能两个相差大不大?以及打游戏哪个更流畅?轿车和suv哪个好轿车和SUV 的驾驶视野,那个比较好!!朗逸和速腾哪个好大众速腾与朗逸哪个好绝地求生加速器哪个好绝地求生用什么加速器比较好?手机杀毒软件哪个好手机安全杀毒软件哪个比较好些?英语词典哪个好英语词典哪种更好啊?电动牙刷哪个好电动牙刷哪个牌子比较好,不要那么贵的清理手机垃圾软件哪个好手机垃圾清理软件哪个好视频软件哪个好安卓系统在线看视频软件哪个好google广告申请怎么样申请谷歌广告成功
星星海 堪萨斯服务器 南昌服务器托管 台湾谷歌网址 cpanel空间 bgp双线 789电视 阿里校园 域名和空间 河南移动m值兑换 美国独立日 东莞idc 德讯 阿里云邮箱登陆 万网注册 1美元 网络速度 葫芦机 tracker服务器 上海联通 更多