JSON简介
XML虽然具有跨平台和跨语言的优势,但是在服务器端生成XML以及客户端解析XML时,往往会导致代码复杂,开发效率极低。JSON为Web应用开发者2提供了另一种数据交换格式。
JSON(JavaScript Object Notation)是一种轻量级数据交换格式,是存储和交换文本信息的语法规范。JSON采用完全独立于语言的文本格式,比XML更小、更快、易于解析,是一种理想的数据交换语言。
JSON具有以下优势:
- JSON是一种纯文本格式、具有层级结构的数据,允许在值中嵌套一些其他值
- JSON可通过JavaScript进行解析,可使用AJAX进行传输
- 比XML更加简洁,读写速度更快
JSON基本结构
JSON是由对象和数组两种结构构成:
- 对象是由key/value键值对所构成的集合;
- 数组是值的有序集合;
JSON中没有变量和程序结构控制部分,多用于数据传输
1. 数据类型:
JSON的数据格式种类非常丰富,常见的类型有数字、字符串、布尔类型、null、数组和对象,具体如下:
- 数字: 包括整数和浮点数,与绝大多数编程语言的表示方法相同,例如,12344(整数)、-3.9e10(浮点数)
- 字符串: 需要使用单引号(’)或双引号(")括起来;一些特殊的字符需要使用JavaScript转义序列来表示,例如引号(\")、空格(\b)、换行符(\n)、回车符(\r)、水平定位(\t)、反斜杠(\\)、正斜杠(\/)可以使用转义符来代替
- ** 布尔类型:** 有两种,true和false
2. JSON对象:
在JavaScript中,使用对象构造函数或对象字面量定义一个JavaScript对象。而JSON对象创建时,不能使用构造函数,只能使用字面量:
{
key1:value1,
key2:value2,
...
}
其中:
- JSON对象以"{" 大括号开始,以"}" 大括号结束
- 参数以key/value的方式进行存储,且key和value使用冒号":"隔开
- 多条数据之间使用逗号","分开
//一个简单的JSON对象
var person = {
name:'张三',
age:'18'
};
JSON复杂结构
JSON对象的数据可以是基本的数据类型(数字、字符串、布尔、null等),还可以是JSON对象和数组类型
1. JSON对象类型的数据:
//json中的数据是另一个json对象
var person = {
name:'张三',
age:'18',
address:{
province:'湖南省',
city:'长沙市',
district:'芙蓉区'}
};
2. 数组类型的数据:
JSON对象中的数据还可以是数组类型,包括基本数据类型数组、JSON对象类型的数组。
var manager = {
name:'admin',
department:'销售部',
contact:['13711111111','13822222222','13933333333'],
employee:[{name:'张三',age:33},{name:'李四',age:44}]
};
alert(manager.contact[0]);