浅析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危险函数(disable_functions)
Feb 23 PHP
php下载excel无法打开的解决方法
Dec 24 PHP
Laravel实现用户注册和登录
Jan 23 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
Apr 20 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
php抛出异常与捕捉特定类型的异常详解
Oct 26 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
利用PHPExcel实现Excel文件的写入和读取
Apr 26 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
PHP编译configure时常见错误的总结
Aug 17 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实现memcache缓存示例讲解
2013/12/04 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
python基于http下载视频或音频
2018/06/20 Python
Pandas中resample方法详解
2019/07/02 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
大学班长的职责
2014/01/27 职场文书
社区八一活动方案
2014/02/03 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
企业宣传语大全
2015/07/13 职场文书
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python