浅析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中执行系统外部命令
Oct 09 PHP
php学习笔记之 函数声明
Jun 09 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
php简单实现sql防注入的方法
Apr 22 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
PHP二维数组分页2种实现方法解析
Jul 09 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 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
Memcache 在PHP中的使用技巧
2010/02/08 PHP
提高PHP编程效率的方法
2013/11/07 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
JavaScript DOM基础
2015/04/13 Javascript
js转换对象为xml
2017/02/17 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
微信小程序icon组件使用详解
2018/01/31 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
python批量生成本地ip地址的方法
2015/03/23 Python
Python中分数的相关使用教程
2015/03/30 Python
简单的Python的curses库使用教程
2015/04/11 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
python中使用正则表达式的连接符示例代码
2017/10/10 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
pandas删除指定行详解
2019/04/04 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Python常用库大全及简要说明
2020/01/17 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
工作个人的自我评价
2014/01/14 职场文书
乡下人家教学反思
2014/02/01 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
教你用python控制安卓手机
2021/05/13 Python
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python