浅析PHP中json_encode与json_decode的区别


Posted in PHP onJuly 15, 2020

浅析PHP中json_encode与json_decode的区别

一、json_encode() 对变量进行JSON编码

  • 语法:json_encode($value[,$options=0])
  • 注意:  1、$value为要编码的值,且该函数只对UTF8编码的数据有效;
                 2、options:由以下常量组成的二进制掩码:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP,

    JSON_HEX_APOS,JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT;

       3、第二个参数一般不需要;

       4、json数据其实就是一个string,可以用var_dump()打印出来看数据类型;

       5、执行成功返回JSON数据,否则返回FALSE。

     

示例:

$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
$json = json_encode($book);
echo $json;

浏览器打印出的结果如下:

{"a":"xiyouji","b":"sanguo","c":"shuihu","d":"hongloumeng"}

二、json_decode() 对JSON数据进行解码,转换为PHP变量

  • 语法:json_decode($json[,$assoc=false[,$depth=512[,$options=0]]])
  • 注意:1、$json 为待解码的数据,必须为utf8编码的数据;

     2、$assoc 值为TRUE时返回数组,FALSE时返回对象;

     3、$depth 为递归深度;

     4、$option二进制掩码,目前只支持 JSON_BIGINT_AS_STRING;

     5、一般只用前面两个参数,如果要数据类型的数据要加一个参数true。

示例:

$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
  $json = json_encode($book);
  
  $array = json_decode($json,TRUE);
  $obj = json_decode($json);
  var_dump($array);
  var_dump($obj);

浏览器打印出的结果如下:

array(4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }
object(stdClass)#2 (4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }

两个结果看起来没多大区别,但调用里面的元素时,array和obj的方式是不同的。

$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
  $json = json_encode($book);
  
  $array = json_decode($json,TRUE);
  $obj = json_decode($json);
  var_dump($array['b']);//调用数组元素
  echo '<br/>';
  var_dump($obj->c);//调用对象元素

 打印结果如下:

string(6) "sanguo" string(6) "shuihu"

到此这篇关于浅析PHP中json_encode与json_decode的区别的文章就介绍到这了,更多相关PHP json_encode与json_decode内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
用PHP创建PDF中文文档
Oct 09 PHP
php下用cookie统计用户访问网页次数的代码
May 09 PHP
php中用foreach来操作数组的代码
Jul 17 PHP
PHP容易忘记的知识点分享
Apr 30 PHP
php权重计算方法代码分享
Jan 09 PHP
php防止站外远程提交表单的方法
Oct 20 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
如何实现php图片等比例缩放
Jul 28 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 PHP
PHP验证类的封装与使用方法详解
Jan 10 PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 #PHP
PHP number_format函数原理及实例解析
Jul 14 #PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 #PHP
PHP基于array_unique实现二维数组去重
Jul 14 #PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 #PHP
通过实例解析PHP数据类型转换方法
Jul 11 #PHP
PHP var关键字相关原理及使用实例解析
Jul 11 #PHP
You might like
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
理解javascript模块化
2016/03/28 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
浅析python递归函数和河内塔问题
2017/04/18 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
大门门卫岗位职责
2013/11/30 职场文书
小学生期末自我鉴定
2014/01/19 职场文书
如何写求职信
2014/05/24 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
简历中自我评价范文
2015/03/11 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL