理解json两种结构:数组和对象

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

    1) 并列的数据之间用逗号(", ")分隔。
    2) 映射用冒号(": ")表示。
    3) 并列数据的集合(数组)用方括号("[]")表示。
    4) 映射的集合(对象)用大括号("{}")表示。

1、

$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可返回数组:

2、

$json = ‘{"a":"aaa","other":["bbb",1111]}‘;

print_r(json_decode($json));

print_r(json_decode($json, true));
时间: 2024-11-05 12:26:10

理解json两种结构:数组和对象的相关文章

json两种结构

1.对象:对象在js中表示为"{}"括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字.字符串.数组.对象几种: 名称\值对 按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对": 1 {"firstName":"Brett"

XML与JSON两种数据结构比较和各自底层实现

1.XML与JSON两种数据结构的优缺点 1> XML 优点:? 格式统一, 符合标准? 容易与其他系统进行远程交互, 数据共享比较方便 ? 缺点: XML文件格式文件庞大, 格式复杂, 传输占用带宽? 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护 客户端不同,浏览器之间解析XML的方式不一致, 需要重复编写很多代码? 服务器端 和 客户端 解析XML花费资源和时间 2> JSON 优点:? 数据格式比较简单, 易于读写, 格式都是压缩的,

JavaScript中两种类型的全局对象/函数(转)

转自:http://www.cnblogs.com/snandy/archive/2011/03/19/1988626.html 这里所说的JavaScript指浏览器环境中的包括宿主环境在内的.第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScript内置对象,即ECMAScript实现提供的不依赖于宿主环境的对象 这些对象在程序执行之前就已经(实例化)存在了.ECMAScript称为The Global Objec

placeholder和json两种实现登录隐藏的方法

<head> <title> placeholder和json两种实现登录隐藏的方法 </title> <script type="text/javascript"> //判断浏览器是否支持 placeholder属性 function isPlaceholder() { var input = document.createElement('input'); return 'placeholder' in input; } if (!i

JavaScript中两种类型的全局对象/函数

这里所说的JavaScript指浏览器环境中的包括宿主环境在内的. 第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScript内置对象,即ECMAScript实现提供的不依赖于宿主环境的对象 这些对象在程序执行之前就已经(实例化)存在了.ECMAScript称为The Global Object,分为以下几种 1, 值属性的全局对象(Value Properties of the Global Object).有NaN

Json两种解析方式

JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json均需要依赖json-lib.jar开发包使用依赖包 1.JsonObject 使用JsonObject解析只有一条数据的json是非常方便的例如:"{\"name\":\"zhangsan\",\"password\":\"zha

PHP json_decode为什么将json字符串转成数组是对象格式?

eg. $a='[{\"img\":\"/uploads/agency/carimgs/5/15515954778091.jpg\"},{\"img\":\"/uploads/agency/carimgs/5/15515954774873.jpg\"}]'; 如果用json_decode($a),得到的是: array (size=2) 0 => object(stdClass)[2] public 'img' =>

第十五讲.数据解析(XML与JSON两种数据解析)

一.XML数据解析 1.SAX:Simple API for XML.基于事件驱动的解析方式,逐行解析数据.(采用协议回调机制) NSXMLParser的解析方法: 1 #import "ViewController.h" 2 #import "Model.h" 3 4 @interface ViewController ()<NSXMLParserDelegate> 5 6 @property(nonatomic,strong)UITableView

微处理器的两种结构比较

冯·诺依曼结构 VS 哈佛结构 1.冯·诺依曼结构 冯·诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture). 1945年,冯·诺依曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯·诺依曼型结构”计算机.冯·诺依曼结构的处理器使用同一个存储器,经由同一个总线传输. 冯·诺依曼结构处理器具有以下几个特点: 必须有一个存储器: 必须有一个控制器: 必须有一个运算器,用于完成算术运算和逻辑运算: 必须有输入和输出设备,