JSON(JavaScript Object Notation JavaScript对象表示法)是JavaScript一个严格的子集,利用了JavaScript中的一些模式来表示结构化数据。值得注意的是,JSON不是一种编程语言,它仅仅是一种理想的数据交换格式。
json可以表示三种类型的值:简单值,对象,数组。
1.1 简单值
包括数值、字符串、布尔值和null,不支持JavaScript中的特殊值undefined. 注意:
如果使用JSON表示字符串,必须使用双引号(单引号会导致语法错误)。 1.2 对象
JSON中的对象和JavaScript字面量稍微有一点不同。下面是一个JavaScript中的对象字面量:
1 var teacher={ 2 name:”许一凡”, 3 age:25
4 }; 但JSON中的对象要求必须给属性增加双引号,如下: 5 { 6 “name”:”许一凡”, 7 “age”:25 8 } 相较与JavaScript对象字面量,JSON对象有两个地方不一样。首先,没有var 声明变量(JSON中没有变量这个概念)。其次,没有末尾的分号。当然,属性加引号包裹是必须的。
属性的值可以是简单值,也可以是复杂类型值,因此可以像下面这样在对象中嵌入对象: 9 { 10 “name”:”许一凡”, 11 “age”:25 12 “school”:{ 13 “name”:”传智播客”, 14 “location”:”上海市浦东新区航都路18号”
15 } 16 } 1.3 数组
JSON数组采用的就是JavaScript中数组语法形式,例如: 17 [25,”许一凡”,true] 同样的注意事项,没有var 声明变量,也没有分号标记结束。把数组和对象组合起来,可以构成更加复杂的数据集合,例如: 18 [ 19 { 20 “name”:”许一凡”, 21 “age”:25, 22 “sex”:”男” 23 }, 24 { 25 “name”:”秋香”,
26 “age”:18, 27 “sex”:”女” 28 } 29 ]
在数据传输流程中,JSON是以文本,即字符串的形式传递的,而它之所以流行的原因在于:可以把JSON数据结构解析成有用的JavaScript对象。如下JSON数据:
可以通过JSON解析器有效处理。
1.4 JSON字符串和JSON对象的转换
1.4.1 使用JavaScript中的eval()函数处理: eval可以将字符串转换成对象。