浅析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伪造referer实例代码
Sep 20 PHP
精通php的十大要点(上)
Feb 04 PHP
php标签云的实现代码
Oct 10 PHP
解析PHP可变函数的经典用法
Jun 20 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
学习php设计模式 php实现备忘录模式(Memento)
Dec 09 PHP
ThinkPHP框架里隐藏index.php
Apr 12 PHP
php中请求url的五种方法总结
Jul 13 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 PHP
php libevent 功能与使用方法详解
Mar 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
PHP 获取远程文件内容的函数代码
2010/03/24 PHP
php学习之 数组声明
2011/06/09 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
python eventlet绿化和patch原理
2020/11/21 Python
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
语文教学随笔感言
2014/02/18 职场文书
文秘个人求职信范文
2014/04/22 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技