浅析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 相关文章推荐
smarty实例教程
Nov 19 PHP
让PHP支持页面回退的两种方法[转]
Feb 14 PHP
PHP中MVC模式的模板引擎开发经验分享
Mar 23 PHP
介绍一些PHP判断变量的函数
Apr 24 PHP
Zend Framework中的简单工厂模式 图文
Jul 10 PHP
探讨php define()函数及defined()函数使用详解
Jun 09 PHP
php定义数组和使用示例(php数组的定义方法)
Mar 29 PHP
PHP静态文件生成类实例
Nov 29 PHP
优化WordPress中文章与评论的时间显示
Jan 12 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
php实现支持中文的文件下载功能示例
Aug 30 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
请离开include_once和require_once
2013/07/18 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
jquery 查找新建元素代码
2010/07/06 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Python编程中类与类的关系详解
2019/08/08 Python
pygame实现非图片按钮效果
2019/10/29 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
大学四年职业生涯规划书范文
2014/01/02 职场文书
生产部主管岗位职责
2014/01/06 职场文书
办公设备采购方案
2014/03/16 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
2014年教务工作总结
2014/12/03 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis
Python中Selenium对Cookie的操作方法
2021/07/09 Python
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android