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_decode 效率,浅析PHP中json_encode、json_decode与serialize、unserialize的性能测试...
今天偶然在想,如果用PHP写一个类似BDB的基于文件的Key-Value小型数据库用于存储非结构化的记录型数据,不知道效率会如何? 于是便联想到PHP中的对象怎么样序列化存储性价比最高呢?接着想到了之 ...
- php中json_encode和json_decode的用法
1.json_encode基本用法:数组转字符串 <?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); ...
- php自定义json字符串,php自定义json_encode()和json_decode()函数
json数据大家应该遇到过,json_encode()和json_decode()是php5.0以后加上的内置函数,如果低版本要使用,需加扩展,很多时候我们无权改变服务器的配置,我们只能通过自定义函数 ...
- PHP中魔术方法的用法
PHP中魔术方法的用法 /** PHP把所有以__(两个下划线)开头的类方法当成魔术方法.所以你定义自己的类方法时,不要以 __为前缀. * */// __toString.__set.__get__ ...
- 简单介绍SQLserver中的declare变量用法
这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...
- python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解
本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...
- 关于sql中case when的用法
Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...
- 【node】express中mysql的基本用法、连接池的使用、事务的回滚
[node]express中mysql的基本用法.连接池的使用 安装mysql包 mysql的配置信息 mysql基本操作 查询mysql并渲染数据 mysql插入操作 首先在html页面写上< ...
- git 只merge部分_[Skill]俩小时掌握多人开发中git的主要用法
前言 几个月前看完了git文档,但是在实际开发中对很多git命令的具体影响仍有疑惑,比方说pull.fetch和rebase三个命令和检出位置拎不清. Git - Bookgit-scm.com 安 ...
最新文章
- python 判断字符串是否全部为数字组成(使用isdigit)
- docker镜像创建redis5.0.3容器集群
- python用途与前景-2019年Python就业及发展前景如何 看完你就清晰了
- 关于.net standard 与 .net core, net framework
- 添加请求头 retrofit_RxJava 与 Retrofit 结合的最佳实践
- 线段树——最大数——洛谷——1198
- 怎么把照片做成消消乐_开心消消乐特效怎么制作 制造的几种方式分享
- string的各种函数(系统学习)
- 3dmax导出fbx没有贴图_实例讲解ArcGIS 与 3DMax 结合建模
- fatal: Not a git repository (or any of the parent directories): .git的解决办法
- go语言-csp模型-并发通道
- 2-Linux C语言指针与内存-学习笔记
- ModelSim入门教程和两个典型例子
- maven pom.xml文件配置ojdbc7报错解决
- 提问的力量四:提问的艺术-体验学习中提问的技巧
- 监控系统存储服务器和磁盘阵列,监控怎样用磁盘阵列存储服务器
- 渝粤题库 陕西师范大学 《综合英语(二)》作业
- pytest所有命令行标志都可以通过运行`pytest --help`来获得
- docker + laravel项目使用elasticsearch进行全文检索功能
- ERTEC200P-2 PROFINET设备完全开发手册(9-2)