php中的json_encode()和json_decode()函数详解
程序员文章站
2022-03-06 21:59:40
...
在介绍这两个函数之前,我还是想说一下json。不知道大家对json了解多少,感觉自己接触php一段时间后,就已经对json有些印象,但仅仅是印象而已,我只知道它是一种数据类型,比较轻量。但是对于它的结构,我真的是模糊不清,直到现在使用它,我才了解到,所以:实践是检验你是否获得真知的一种非常有效的方法。
一:首先是json_encode(),意思就是将数据转为json格式,那什么类型数据可以转为json格式呢
1.对象。
定义一个class,new一个对象,可以将对象转为json格式
<?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); ?>
结果
{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}
2.数组。
定义一个键值对数组
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>
结果
{"a":1,"b":2,"c":3,"d":4,"e":5}
我们可以知道都是转为了json格式数据,其实重点不在于结果相同,因为都是转为json么。。我们需要知道的是可以转为json格式的数据类型是对象和键值对数组
二:其次是json_decode()。对 JSON 格式的字符串进行解码,并转换为 PHP 变量。
先上代码
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, 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) }
这里我们很显然的看出第一个打印结果是一个对象,第二个是一个键值对数组。
这样我们可以很好的解释json_decode()的第二个参数:
当为true时:返回数组;当为false(默认为false)时:返回对象。
相关推荐:
以上就是php中的json_encode()和json_decode()函数详解的详细内容,更多请关注其它相关文章!
上一篇: 谈谈PHP运算符"::"、"->"和"=>"的区别
下一篇: 关于php curl 错误码的说明
推荐阅读
-
详解PHP的Yii框架中组件行为的属性注入和方法注入
-
详解Python中映射类型的内建函数和工厂函数
-
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
-
PHP中array_keys和array_unique函数源码的分析
-
详解Python中映射类型的内建函数和工厂函数
-
PHP中ini_set和ini_get函数的用法小结
-
详解PHP中的mb_detect_encoding函数使用方法
-
详解PHP中strlen和mb_strlen函数的区别
-
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
-
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解