浅析json_encode
作用:对变量进行 JSON 编码
语法: string json_encode ( mixed $value
[, int $options
= 0 [, int $depth
= 512 ]] )
value :除了resource 类型之外,可以为任何数据类型。所有字符串数据的编码必须是 UTF-8。
options:由以下常量组成的二进制掩码
:JSON_HEX_QUOT,JSON_HEX_TAG,JSON_HEX_AMP,JSON_HEX_APOS,JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT,JSON_FORCE_OBJECT,JSON_PRESERVE_ZERO_FRACTION,JSON_UNESCAPED_UNICODE(避免中文这些转码等,对应数字256),JSON_UNESCAPED_SLASHES(不转义反斜杠,对应的数字64),JSON_PARTIAL_OUTPUT_ON_ERROR。
关于 JSON 常量详情参考JSON 常量页面,也可以参考http://blog.csdn.net/any2mobile/article/details/8717180。
depth:设置最大深度。 必须大于0。
返回值说明:成功则返回 JSON 编码的 string 或者在失败时返回 FALSE
。
如果value是一个数组,如果是无下标的数组(即默认下标0,1,2,3),则返回值是[]包起来的数组,否则,是{}包起来的对象
<?php
$arr = array(1,2,3,4);
$arr2 = array('a','b','c','d');
$arr3 = array(0=>1,1=>2,2=>3,3=>4);
$arr4 = array(1=>1,2=>2,3=>3,4=>4);
$arr5 = array('0'=>1,'1'=>2,'2'=>3,'3'=>4);
$arr6 = array('a'=>'a','b'=>'b','c'=>'c','d'=>'d');
$arr7 = array(array(1,2,3,4),array('a','b','c','d'),array('a'=>'a','b'=>'b','c'=>'c','d'=>'d')
);
$arr8 = array('one' => array(1,2,3,4),'two'=> array('a','b','c','d'),'three' => array('a'=>'a','b'=>'b','c'=>'c','d'=>'d')
);
var_dump(json_encode($arr));
//结果: [1,2,3,4]
var_dump(json_encode($arr2));
//结果: ["a","b","c","d"]
var_dump(json_encode($arr3));
//结果: [1,2,3,4]
var_dump(json_encode($arr4));
//结果: {"1":1,"2":2,"3":3,"4":4}
var_dump(json_encode($arr5));
//结果: [1,2,3,4]
var_dump(json_encode($arr6));
//结果: {"a":"a","b":"b","c":"c","d":"d"}
var_dump(json_encode($arr7));
//结果: [[1,2,3,4],["a","b","c","d"],{"a":"a","b":"b","c":"c","d":"d"}]
var_dump(json_encode($arr8));
//结果: {"one":[1,2,3,4],"two":["a","b","c","d"],"three":{"a":"a","b":"b","c":"c","d":"d"}}
浅析json_encode相关推荐
- php json_decode 效率,浅析PHP中json_encode、json_decode与serialize、unserialize的性能测试...
今天偶然在想,如果用PHP写一个类似BDB的基于文件的Key-Value小型数据库用于存储非结构化的记录型数据,不知道效率会如何? 于是便联想到PHP中的对象怎么样序列化存储性价比最高呢?接着想到了之 ...
- Jsonp跨域漏洞浅析
为什么要用到jsonp跨域? 同源策略:协议.域名.端口都相同,是一种安全策略,不同源的客户端脚本在没有明确授权的情况下,不能读取对方资源. 如何解决跨域(目前我掌握的有两种手段 (1)JSONP方式 ...
- 浅析 JavaScript 中的 函数 uncurrying 反柯里化
柯里化 柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果. 因此柯里化的过程是 ...
- 浅析Python中bytes和str区别
本博转载自:Chown-Jane-Y的浅析Python3中的bytes和str类型 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示, ...
- json_encode时中文编码转正常状态
function json_encode_cn($data) {$data = json_encode($data);return preg_replace("/\\\u([0-9a-f]{ ...
- 学习《Linux设备模型浅析之设备篇》笔记(深挖一)
这篇文章既然说了是浅析,那就是跳过了一些东西,我们把这些跳过的东西给它尽可能的补回来 今天登陆 lxr.free-electrons.com 发现内核版本已经升级到3.15了,那以后都使用3.15的源 ...
- 学习《Linux设备模型浅析之设备篇》笔记(一)
最近在学习Linux设备模型,前面几篇文章也是读这篇的时候遇到问题,然后为了搞清楚先转去摸索才写出来的. 当然了,刚开始是先读到<Linux那些事儿之我是Sysfs>,搞不清楚才去读的&l ...
- json_encode 中文不乱码
echo json_encode("中文", JSON_UNESCAPED_UNICODE);//"中文" 转载于:https://www.cnblogs.co ...
- 架构周报| 浅析MySQL JDBC连接配置上的两个误区
经典案例 \\ 浅析MySQL JDBC连接配置上的两个误区:相信使用MySQL的同学都配置过它的JDBC驱动,多数人会直接从哪里贴一段URL过来,然后稍作修改就上去了,对应的连接池配置也是一样的,很 ...
- 超级账本(Hyperledger Fabric)之权限管理浅析
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 超级账本(Hyperledger Fabric)之权限管理浅析 超级账本是联盟链的代表,而其相对于共链(例如比特币,以太 ...
最新文章
- Qt学习一门:直接使用QT具
- linux dbus-daemon进程 消息转发 简介
- KB001: 兼容性问题与浏览器的内核及渲染模式
- Spring Data JPA单元测试 Not a managed type
- 【MongoDB】MongoDb的“not master and slaveok=false”错误及解决方法
- 前端学习(1711):前端系列javascript之创建uni-app创建
- 嵌套集合模型(Nested set model)介绍
- 前手淘前端负责人:前端人如何保持竞争力?
- 虚拟linux系统首次登入,第一次在虚拟机启动我们的Linux系统
- 【日期类问题】例2.1日期差值
- 移动端ajax分页,移动端分页加载 - 花乐天的个人空间 - OSCHINA - 中文开源技术交流社区...
- ArcGIS js Api 4.x修改三维球背景技巧
- Pr 入门教程:如何减少音频中的噪音和混响?
- tushare复权数据使用
- PVE使用USB蓝牙直通配置
- 触控笔有必要买吗?苹果平板触控笔排行榜
- jquery日历插件daterangepicker全面详解汇总
- python爬虫(7)——获取京东商品评论信息
- 使用python 绘制统计图,(折线图,条形统计图,扇形统计图)
- stm32驱动rgb屏电路图_基于STM32F767驱动 LTDC LCD(RGB屏)