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 foreach、while性能比较
Oct 15 PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 PHP
解决ajax+php中文乱码的方法详解
Jun 09 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
PHP线程的内存回收问题
Jul 08 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
PHP回调函数简单用法示例
May 08 PHP
laravel按天、按小时,查询数据的实例
Oct 09 PHP
PHP 命名空间和自动加载原理与用法实例分析
Apr 29 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和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
javascript trie前缀树的示例
2018/01/29 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
python运行时间的几种方法
2016/06/17 Python
浅述python中深浅拷贝原理
2018/09/18 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
pycharm 快速解决python代码冲突的问题
2021/01/15 Python
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
大学旷课检讨书
2014/01/28 职场文书
产品推广策划方案
2014/05/10 职场文书
环保建议书200字
2014/05/14 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
公务员年度考核评语
2014/12/31 职场文书
教师个人成长总结
2015/02/11 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server