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 adodb介绍
Mar 19 PHP
php 来访国内外IP判断代码并实现页面跳转
Dec 18 PHP
php在线代理转向代码
May 05 PHP
ThinkPHP之M方法实例详解
Jun 20 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 PHP
Symfony2安装第三方Bundles实例详解
Feb 04 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
PHP生成短网址方法汇总
Jul 12 PHP
php生成与读取excel文件
Oct 14 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.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
Javascript的一种模块模式
2008/03/22 Javascript
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
python中redis的安装和使用
2016/12/04 Python
python3 读取Excel表格中的数据
2018/10/16 Python
python 阶乘累加和的实例
2019/02/01 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
快速了解Python开发环境Spyder
2020/06/29 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
网络工程专业毕业生推荐信
2013/10/28 职场文书
竞聘副主任科员演讲稿
2014/01/11 职场文书
银行办理业务介绍信
2014/01/18 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
宣传稿格式范文
2015/07/23 职场文书
2016年感恩节寄语
2015/12/07 职场文书