LearnWeb20-JS05-JSON使用
[!summary]+
本篇是 Mdn 使用 JSON 一文的阅读笔记,对 web 开发中的 JSON 进行了介绍
JSON 简介
JavaScript Object Notation(JSON)是将结构化数据表示为 JavaScript 对象的标准格式,通常用于网页上的表示和传输数据(服务端,客户端),熟悉 JSON 对象的创建,传输,解析,对于 JS 来说也是一门基本功了。
JSON 可以存在单独的文件中,后缀为 .json
,同时在进行网络传输时,MIME 类型为 application/json
基本操作介绍
对 JSON 这类标记语言进行的操作通常就是下面的两种:
- 将字符串转换为原生对象的过程称为反序列化(deserialization)
- 将原生对象转换为字符串进行网络传输的字符串的过程则成为序列化(serialization)
因此可以理解为这就是一个 object-string 的相互转换过程,因此在一个语言中如何使用 json 这种标记语言,最核心的就是上述的这两个操作,随着后续的发展,JSON 在除了 js 的其他语言中也被广泛的使用到。
JSON 结构和“语法”
整个 JSON 是一个字符串,其非常类似于 JS 对象字面量的写法(无需命名对象名),且其中仅包含要传输的数据(属性)而不包含方法;
一般而言有两种方法来编写 JSON 文件,一种是类似对象字面量(字典),存储一个单体对象的方式;另一种则是 JSON 数组,最外层用数组的形式,在数组里面可以存储多个单独对象。下面分别给出示例:
单对象形式,对象字面量(like 字典),js 中反序列化获取之后就会得到一个对象,使用对象的方法去调用其中的属性即可。
1 |
|
数组多对象形式,下面这种写法也是一种合法的 JSON,js 中反序列化获取后则会得到一个数组对象,使用下标去索引即可。
1 |
|
同时 JSON 还有以下的一些编写规范:
- 纯数据,只包含属性不包含方法;
- 要求字符串和属性名称使用双引号,单引号无效;
- 错位的
,
和;
都可能导致 json 文件出错,要做好检查,可以使用JSONLint 这样的程序来验证; - JSON 实际上可以使任何可以有效包含在 JSON 中的数据类型的形式,例如,单个字符串或者单个数字也是一个有效的 JSON 对象;