浅析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(2)
Oct 09 PHP
一棵php的类树(支持无限分类)
Oct 09 PHP
php 过滤危险html代码
Jun 29 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
PHP setTime 设置当前时间的代码
Aug 27 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
PHP数据库连接mysql与mysqli对比分析
Jan 04 PHP
PHP加密解密类实例代码
Jul 20 PHP
PHP中trait使用方法详细介绍
May 21 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 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批量上传的实现代码
2013/06/09 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
在Python中使用mongoengine操作MongoDB教程
2015/04/24 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
PyQt5实现画布小程序
2020/05/30 Python
Python程序慢的重要原因
2020/09/04 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
天巡全球:Skyscanner Global
2017/06/20 全球购物
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
汉语专业应届生求职信
2013/10/01 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js