深度剖析: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的更多相关文章
- 深度剖析java中JDK动态代理机制
https://www.jb51.net/article/110342.htm 本篇文章主要介绍了深度剖析java中JDK动态代理机制 ,动态代理避免了开发人员编写各个繁锁的静态代理类,只需简单地指定 ...
- Day07_37_深度剖析集合中的contains()方法
深度剖析集合中的 contains()方法 contains()方法查找集合中是否包含某个元素 contains() 底层使用的是 equals()方法 当contains()方法拿到一个对象的时候, ...
- PHP中json_encode与json_decode
一.json_encode() 对变量进行JSON编码, 语法: json_encode ( $value [, $options = 0 ] ) 注意:1.$value为要编码的值,且该函数只对UT ...
- php中json_encode和json_decode的用法
1.json_encode基本用法:数组转字符串 <?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); ...
- 深度剖析Vue中父给子、子给父、兄弟之间传值!
本片文章将为您详细讲解在Vue中,父给子传值.子给父传值以及兄弟之间传值方式! 父传子:父组件 // template里面 <aa :info="name"/> // ...
- libevent学习笔记(参考libevent深度剖析)
最近自学libevent事件驱动库,参考的资料为libevent2.2版本以及张亮提供的<Libevent源码深度剖析>, 参考资料: http://blog.csdn.net/spark ...
- php中的json_encode()和json_decode()函数的一些说明
一,json语法( php中的json_decode($json)中的$json要符合json语法格式 ) ① JSON可以表示三种类型的值 1,简单值.包括整型,字符串型,布尔值和null.例如:5 ...
- 《AngularJS深度剖析与最佳实践》简介
由于年末将至,前阵子一直忙于工作的事务,不得已暂停了微信订阅号的更新,我将会在后续的时间里尽快的继续为大家推送更多的博文.毕竟一个人的力量微薄,精力有限,希望大家能理解,仍然能一如既往的关注和支持sh ...
- ASP.NET Core管道深度剖析(2):创建一个“迷你版”的管道来模拟真实管道请求处理流程
从<ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求>我们知道ASP.NET Core请求处理管道由一个服务器和一组有序的中间件组成,所以从总体设计来讲是非常简单的,但 ...
随机推荐
- bzoj 1050 [HAOI2006]旅行comf (并查集)
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1050 思路: 先将每条边的权值排个序优先小的,然后从小到大枚举每一条边,将其存到并查集 ...
- 【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
bzoj1597懒得复制,戳我戳我 Solution: 线性DP打牌\(+\)斜率优化 定义状态:\(dp[i]\)到了位置\(i\)最少花费 首先我们要发现,如果有一个小方块能被其他的大方块包围,其 ...
- 架构师成长之路1.2-多功能系统信息统计工具dstat
点击返回架构师成长之路 架构师成长之路1.2-多功能系统信息统计工具dstat dstat命令是一个用来替换vmstat.iostat.netstat.nfsstat和ifstat这些命令的工具,是一 ...
- ModelMap对象的 addAttribute,put两个方法区别
这个是 源码中 ModelMap的定义 类 public class ModelMap extends LinkedHashMap<String, Object> 说明 ModelMap是 ...
- numpy 基础 —— np.linalg
- C/C++ exception类
#include <iostream> #include <iomanip> #include <string> #include <sstream> ...
- C++外观模式和组合模式
外观模式应该是用的很多的一种模式,特别是当一个系统很复杂时,系统提供给客户的是一个简单的对外接口,而把里面复杂的结构都封装了起来.客户只需使用这些简单接口就能使用这个系统,而不需要关注内部复杂的结构. ...
- Python 基础数据类型之set
set是一个无序且不重复的元素集合,相当于字典的键,不重复,不可变 一.set变量初始化 A = set() #注意在创建空集合的时候只能使用s=set(),因为s={}创建的是空字典 B = {&q ...
- Java基础-标识符与关键字
Java基础-标识符与关键字 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是标识符 标识符就是程序员在编写程序时,给类,变量,方法等起的名字. 二.标识符的命名规则 1& ...
- Python常用模块-随机数模块(random)
Python常用模块-随机数模块(random) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用方法举例 #!/usr/bin/env python #_*_coding: ...