浅析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 feof用来识别文件末尾字符的方法
Aug 01 PHP
简单的移动设备检测PHP脚本代码
Feb 19 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
php存储过程调用实例代码
Feb 03 PHP
将php数组输出html表格的方法
Feb 24 PHP
PHP Web木马扫描器代码分享
Sep 06 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
PHP写的简单数字验证码实例
May 23 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 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
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
新手学PHP之数据库操作详解及乱码解决!
2007/01/02 PHP
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
详解Vuex下Store的模块化拆分实践
2019/07/31 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
机电一体化大学生求职信
2013/11/08 职场文书
学校门卫工作职责
2013/12/07 职场文书
迟到检讨书5000字
2014/01/31 职场文书
秋天的雨教学反思
2014/04/27 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
求职信标题怎么写
2014/05/26 职场文书
毕业生见习报告总结
2014/11/08 职场文书
行为规范主题班会
2015/08/13 职场文书
R9700摩机记
2022/04/05 无线电