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
火车头discuz6.1 完美采集的php接口文件
Sep 13 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
May 31 PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
图文介绍PHP添加Redis模块及连接
Jul 28 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
php之可变函数的实例详解
Sep 13 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
PHP代码覆盖率统计详解
Jul 22 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
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
js轮播图代码分享
2016/07/14 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
微信小程序位置授权处理方法
2019/06/13 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
python打造爬虫代理池过程解析
2019/08/15 Python
python numpy存取文件的方式
2020/04/01 Python
python文字转语音的实例代码分析
2019/11/12 Python
python实现网页录音效果
2020/10/26 Python
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
一份Java笔试题
2012/02/21 面试题
进程的查看和调度分别使用什么命令
2015/03/25 面试题
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Java数据结构之链表相关知识总结
2021/06/18 Java/Android