- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JavaScript笔记:JSON
JavaScript笔记:JSON
关于 JSON,最重要的是要理解它是一种数据格式,不是一种编程语言。虽然具有相同的语法形式, 但 JSON 并不从属于 JavaScript。而且,并不是只有 JavaScript 才使用 JSON,毕竟 JSON 只是一种数据 格式。很多编程语言都有针对 JSON 的解析器和序列化器。
1、语法
JSON 的语法可以表示以下三种类型的值。
1、简单值:使用与 JavaScript 相同的语法,可以在 JSON 中表示字符串、数值、布尔值和 null。但 JSON 不支持 JavaScript 中的特殊值 undefined。
2、对象:对象作为一种复杂数据类型,表示的是一组无序的键值对儿。而每个键值对儿中的值可以是简单值,也可以是复杂数据类型的值。
3、数组:数组也是一种复杂数据类型,表示一组有序的值的列表,可以通过数值索引来访问其中的值。数组的值也可以是任意类型——简单值、对象或数组。
JSON 不支持变量、函数或对象实例,它就是一种表示结构化数据的格式,虽然与 JavaScript 中表示数据的某些语法相同,但它并不局限于 JavaScript 的范畴。
简单值
最简单的 JSON 数据形式就是简单值。例如,下面这个值是有效的 JSON 数据:
5
1
这是 JSON 表示数值 5 的方式。类似地,下面是 JSON 表示字符串的方式:
Hello world!
1
JavaScript 字符串与 JSON 字符串的最大区别在于,JSON 字符串必须使用双引号(单引号会导致语法错误)。
布尔值和 null 也是有效的 JSON 形式。但是,在实际应用中,JSON 更多地用来表示更复杂的数据结构,而简单值只是整个数据结构中的一部分。
对象
JSON 中的对象与 JavaScript 字面量稍微有一些不同。下面是一个 JavaScript 中的对象字面量:
var person = {
name: Nicholas,
age: 29
};
JSON 表示上述对象的方式如下:
{
name: Nicholas,
age: 29
}
与 JavaScript 的对象字面量相比,JSON 对象有两个地方不一样。首先,没有声明变量(JSON 中没有变量的概念)。其次,没有末尾的分号(因为这不是 JavaScript 语句,所以不需要分号)。对象的属性必须加双引号,这在 JSON 中是必需的。属性的值可以是简单值,也可以是复杂类型值,因此可以像下面这样在对象中嵌入对象:
{
name: Nicholas,
age: 29,
school: {
name: Merrimack College,
location: North Andover, MA
}
}
与 JavaScript 不同,JSON 中对象的属性名任何时候都必须加双引号。手工编写 JSON 时,忘了给对象属性名加双引号或者把双引号写成单引号都是常见的错误。
数组
JSON 中的第二种复杂数据类型是数组。JSON 数组采用的就是 JavaScript 中的数组字面量形式。例如,下面是 JavaScript 中的数组字面量:
var values = [25, hi, true];
1
在 JSON 中,可以采用类似的语法表示同一个数组:
[25, hi, true]
1
同样要注意,JSON 数组也没有变量和分号。
把数组和对象结合起来,可以构成更复杂的数据集合。
对象和数组通常是 JSON 数据结构的最外层形式(当然,这不是强制规定的), 15 利用它们能够创造出各种各样的数据结构。
2、解析与序列化
JSON 之所以流行,拥有与 JavaScript 类似的语法并不是全部原因。更重要的一个原因是,可以把 JSON 数据结构解析为有用的 JavaScript 对象。与 XML 数据结构要解析成 DOM 文档而且从中提取数据 极为麻烦相比,JSON 可以解析为 JavaScript 对象的优势极其明显。
[
{
title: Professional JavaScript,
authors: [
Nicholas C. Zakas
],
edition: 3,
year: 2011
},
{
title: Professional JavaScript,
authors: [
Nicholas C. Zakas
],
文档评论(0)