浅析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 ftp文件上传函数(基础版)
Jun 03 PHP
PHP数组循环操作详细介绍 附实例代码
Feb 03 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
全新Mac配置PHP开发环境教程
Feb 03 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
PHP xpath()函数讲解
Feb 11 PHP
PHP中16个高危函数整理
Sep 19 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 PHP
如何用RabbitMQ和Swoole实现一个异步任务系统
May 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
虫族 ZERG 概述
2020/03/14 星际争霸
PHP 和 HTML
2006/10/09 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
PHP单链表的实现代码
2016/07/05 PHP
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
html5教程画矩形代码分享
2013/12/04 HTML / CSS
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
雪山饭庄的创业计划书范文
2014/01/18 职场文书
会计的岗位职责
2014/03/15 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
爱护公共设施标语
2014/06/24 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
党员反邪教心得体会
2016/01/15 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript