JSON笔记
什么是 JSON
JSON 的全称是 JavaScript Object Notation (JavaScript对象表示法)。它是一种独立于编程语言、轻量级的数据交换格式(类似于XML等)。
JSON 是基于 JavaScript 对象字面量的,是 JavaScript 的一个子集。详细方面可以参考 http://www.json.org/
为什么使用JSON
JSON 被认为是 XML 的很好替代者。因为 JSON 的可读性非常好,而且它没有像 XML 那样包含很多冗余的元素标签,这使得应用在使用JSON进行网络传输以及进行解析处理的速度更快,效率更高。
JSON 语法格式
1 | { |
- JSON 以名称 - 值对(又称键 - 值)的方式存储数据。
- JSON 中使用冒号(:)分隔名称和值。名称始终在左侧,值始终在右侧。
- 名称必须以双引号(”)括起,不能够使用单引号,亦或者不用。
从机器读取 JSON 的角度来解析 JSON 语法结构:
- { (左花括号)指”开始读取对象“
- } (右花括号)值“结束读取对象”
- [ (左方括号)指“开始读取数组”
- ] (右方括号)指”结束读取数组“
- : (冒号)指“在名称 - 值对中分隔名称和值”
- , (逗号)指“分隔对象中名称 - 值”或者“分隔数组中的值”
JSON 数据类型
- 对象数据类型
JSON 本身就是对象,也就是一个被花括号包裹的名称 - 值对的列表。在 JSON 内部表示对象的方式,就如同与表示 JSON。下面 JSON 数据中包含一个 person 对象(person对象中还包含一个 hair 对象)
1 | { |
- 字符串类型
JSON的值以字符串的形式表示,如同{ "animal": "cat"}
中的"cat"
。JSON 中的字符串可以由任何 UniCode 字符构成。字符串的两边必须被双引号包裹。
在 JSON 的值中,一对双引号代表字符串中起点与终点。如果我们在双引号内部再次使用双引号,JSON编译器就无法识别双引号后面的内容(如下 “Hello 后面的内容),就会出现报错。错误用法如下所示:
1 | { |
一般来说,字符串中如果需要使用特殊符号(例如双引号),则必须使用转义符号来表示(\)。正确用法如下所示:
1 | { |
- 数字类型
数字是一种常见的用于传递数据的信息片段。JSON 中的数字可以是整数、浮点数(双精度)、负数或者是指数。
1 | { |
- 布尔值类型
1 | { |
- null 类型
null 是一个表示“没有值”的特殊值。它表示名称对应的值为空。
1 | { |
- 数组类型
数组类型表示,可以在形如列表的内部存储若干数组。
1 | { |
特别需要注意的是,在 JSON 的数组内部,只存在值,而不存在数据类型等这样的说法。换句话说,就是在数组内部,可以存储任何合法的 JSON 数据类型(字符串、数字、对象、布尔值等)。
1 | { |
在 Web开发中需要注意的地方
- 在 HTTP 请求当中传递 JSON 时,需要设置媒体类型为 application/json。
参考资料: