浅析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 session常见问题集锦及解决办法总结
Mar 18 PHP
PHP5中的this,self和parent关键字详解教程
Mar 19 PHP
PHP 定界符 使用技巧
Jun 14 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
洪恩在线成语词典小偷程序php版
Apr 20 PHP
PHP7.0版本备注
Jul 23 PHP
php+ajax无刷新分页实例详解
Dec 07 PHP
PHP异常处理Exception类
Dec 11 PHP
PHP实现的堆排序算法详解
Aug 17 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 PHP
PHP下载文件函数与用法示例
Sep 27 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 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
用Zend Encode编写开发PHP程序
2006/10/09 PHP
使用无限生命期Session的方法
2006/10/09 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
nodejs基础应用
2017/02/03 NodeJs
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
浅谈python锁与死锁问题
2020/08/14 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
国庆促销活动总结
2014/08/29 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs
nginx 配置缓存
2022/05/11 Servers
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers