JSON规范是符合ECMAScript语法规范,这样按JSON规范描述出的字符串已是 JavaScript的原生代码串,这使之能通过eval动态的在JSON串与JavaScript对象之间进行转换。
一、Json的定义
1、JSON 语法是 JavaScript 对象表示法语法的子集
2、JSON的语法很简单
就是使用大括号'{}',中括号'[]',逗号',',冒号':',双引号'“”'。
3、JSON 值可以是
1)对象是一个无序的“‘名称/值’对”集合
一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值。
例如
{ "firstName":"John" , "lastName":"Doe" }
JavaScript 语句等价:
firstName = "John"
lastName = "Doe"
2)数组是值(value)的有序集合
一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取
例如
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。
3)JSON语法可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
4)字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。 字符串(string)与C或者Java的字符串非常相似。
5)JSON语法也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
二、把JSON字符串转换成JavaScript对象
HTML 代码 复制
//使用script本身的函数eval将JSON串解析成对象 eval( ); //现在我们可以使用e这个对象了,还可以以点的访问形式来访问对象的属性 alert(e.employee.firstName); alert(e.employee.lastName); alert(e.employee.employeeNumber); alert(e.employee.title);
三、JSON优缺点
优点