JSON两种结构之对象和数组的理解


Posted in PHP onJuly 19, 2016

JSON简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

Json是一种异常简单易懂的数据格式,关于json的规定,仅仅如下而已:

1) 并列的数据之间用逗号(", ")分隔。

2) 映射用冒号(": ")表示。

3) 并列数据的集合(数组)用方括号("[]")表示。

4) 映射的集合(对象)用大括号("{}")表示。

JSON有两种结构数组和对象:数组表示有序数据的集合,而对象表示无序数据的集合。

看下面例子:

$arr = array(111,'aaa','bbb');
$arr1 = array(
'a' => 'aaa',
'b' => 222
);
$arr2 = array(
'a' => 'aaa',
'other' => array(
'bbb',1111
)
);
echo json_encode($arr); //[111,"aaa","bbb"]
echo json_encode($arr1); //{"a":"aaa","b":222}
echo json_encode($arr2); //{"a":"aaa","other":["bbb",1111]}

从上看出:由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

关于PHP对json支持说明:

json_encode只支持UTF-8编码的数据;

json_decode永远只反映一个PHP对象,带上第二个参数true可返回数组:

$json = '{"a":"aaa","other":["bbb",1111]}';
print_r(json_decode($json));
print_r(json_decode($json, true));

以上所述是小编给大家介绍的JSON两种结构之对象和数组的理解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
如何对PHP程序中的常见漏洞进行攻击(上)
Oct 09 PHP
PHP_MySQL教程-第一天
Mar 18 PHP
php5 pdo新改动加载注意事项
Sep 11 PHP
测试PHP连接MYSQL成功与否的代码
Aug 16 PHP
PHP验证码函数代码(简单实用)
Sep 29 PHP
php出现内存位置访问无效错误问题解决方法
Aug 16 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
Dec 18 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
PHP的imageTtfText()函数深入详解
Mar 03 PHP
深入理解PHP JSON数组与对象
Jul 19 #PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 #PHP
完美利用Yii2微信后台开发的系列总结
Jul 18 #PHP
PHP中set_include_path()函数相关用法分析
Jul 18 #PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 #PHP
详谈PHP程序Laravel 5框架的优化技巧
Jul 18 #PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 #PHP
You might like
php中引用符号(&)的使用详解
2013/11/13 PHP
php rsa加密解密使用详解
2015/01/14 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
js实现五星评价功能
2017/03/08 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
koa源码中promise的解读
2018/11/13 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
应届生船舶驾驶求职信
2013/10/19 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
物业保安员岗位职责
2014/03/14 职场文书
未婚证明格式
2015/06/15 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL
python多次执行绘制条形图
2022/04/20 Python