在JavaScript中使用JSON
JSON概述
XML虽好,可作为数据交换格式,有时会喧宾夺主,标记比数据还多,徒增流量。更重要的是,在JavaScript中处理XML实在太不便利了。而JSON,没有附加的标记,在JavaScript中可作为对象处理,因而渐渐成了目前Web开发的标准数据交互格式。
JSON的英文全称是“JavaScript Object Notation”,意思就是JavaScript对象表示法。它是一种基于文本的、独立于语言的轻量级数据交换格式。它来源于ECMA-262第三版定义的JavaScript对象直接量(literal)。它不但易于阅读和编写,还易于机器解析和生成,而且完全独立于语言的文本格式,因而,JSON是一种理想的数据交换语言。
JSON的结构
JSON有对象和数组两种结构。
对象结构以“{”(大括号)开始,“}”(大括号)结束。中间部分由0个或多个以“,”(逗号)分隔的“关键字(key)/值(value)”列表构成,而关键字与值之间必须以“:”(冒号)分隔。其结构语法如下:
{
key1:value1,
key2:value3,
…
}
从上面的结构可以看到,这种结构的JSON有点类似其他语言中的字典或散列表。结构中的关键字是字符串,而值可以是字符串、数值、true、false、null、对象或数组。
注意 true、false和null必须全部为小写字母。当值为对象或数组时,变量记录的是对象的指针。
数组结构以“[”(中括号)开始,“]”(中括号)结束。中间部分由0个或多个以“,”分隔的值(value)列表构成,其结构语法如下:
[value1,value2,…]
值可以是字符串、数值、true、false、null、对象或数组。
注意 如果在最后一个“关键字/值”后,“}”之前有1个“,”,如“{a:1,b:2,}”在IE 8及其之前版本的浏览器会报错,而在IE 9或其他浏览器则不会报错。这也是有些程序在Firefox中运行正常,在IE 8及其之前的浏览器中不能运行的主要原因。数组结构的JSON也存在这个问题,需要特别注意。
待续