Source: w3c
JSON是什么
JSON是 JavaScript Object Notation,JS对象表示方法,是一种数据的标识格式,与XML类似,指的是数据内容。
JSON特点
- JSON 是用来描述对象的一种语言,其标记性没有像XML那么重;
- JSON 具有“自我描述性”(人类可读);
- JSON 具有层级结构(值中存在值)。
JSON与XML语言的主观差异
先看两个例子,有一个主观对比:
1 | { |
1 | <sites> |
- 两种语言的创建目的不同,导致他们放在一起比较就不合适。
- JSON是面向JS对象的一种数据序列话描述语言,内容为主,格式其次;
- XML是标记语言,以标签为基础,内容其次。
- 能与XML进行比较HTML更加合适。
- HTML标签固定
- XML标签自定义
- XML是一种明显的树形结构
- 能与XML进行比较HTML更加合适。
JSON内两种数据
- 键值对:可表示对象、记录、字典、哈希表等
- 有序对:列表,向量,序列等
这只是一种数据的理解方式,我也可以理解为三种数据:
- {} : 对象
- [] : 列表
- 标量
JSON语法规则
- 数据使用键值对表示;
- 数据之间使用“,”分隔;
- {}表示为对象
- []表示为数组
键值对的表示形式
1 | "firstName" : "John" |
“字段名称” : “值”
注意 字段名称 采用了双引号
值的选择范围
- 数字(整数或者浮点数)
- 字符串(需要双引号)
- 布尔值(true/false)
- 数组 ([])
- 对象 ({})
- null
JSON 对象
JSON 对象在花括号中书写:
对象可以包含多个名称/值对:
1 | { "firstName":"John" , "lastName":"Doe" } |
这一点也容易理解,与这条 JavaScript 语句等价:
1 | firstName = "John" |
JSON 数组
JSON 数组在方括号中书写:
数组可包含多个对象:
1 | { |
在上面的例子中,对象 “employees” 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。