JSON 是什么
本系列基于 RFC 8259 官方规范编写,面向零基础新手。
JSON 是什么?
JSON 的全称是 JavaScript Object Notation(JavaScript 对象表示法),是一种轻量级的数据交换格式。
简单来说,JSON 就是一种约定好的文本格式,让不同的程序、不同的编程语言之间能够"看懂"彼此传递的数据。
生活中的类比
想象你去餐厅点餐:
- 你(前端网页)对服务员(服务器)说:"我要一份炒饭,加辣。"
- 服务员把这句话记下来,传给后厨。
- 后厨一看就懂,开始做饭。
JSON 就像是这张"点餐单"——它用一种统一的格式记录数据,让发送方和接收方都能准确理解。
JSON 的设计目标
根据 RFC 8259 规范,JSON 有 4 个核心设计目标:
| 目标 | 含义 | 好处 |
|---|---|---|
| 最小化 | 规则简单,语法精简 | 容易学习,容易实现 |
| 可移植 | 不依赖特定平台 | Windows、Mac、Linux、手机都能用 |
| 基于文本 | 纯文本格式 | 人可以直接阅读,也方便调试 |
| 语言无关 | 不是某个语言的专属 | Java、Python、Go、JavaScript 都能解析 |
一句话总结
JSON 就是"一种任何编程语言都能读写的、纯文本的、结构化的数据格式"。
JSON 能表示什么数据?
JSON 可以表示 4 种原始类型 和 2 种结构化类型:
原始类型(像一颗颗单独的豆子):
- 字符串(String)——
"飞翔科技" - 数字(Number)——
2018 - 布尔值(Boolean)——
true或false - 空值(Null)——
null
结构化类型(像装豆子的容器):
- 对象(Object)—— 用花括号
{}包裹的键值对集合 - 数组(Array)—— 用方括号
[]包裹的有序列表
第一个 JSON 例子
下面是一个描述广州飞翔科技公司的简单 JSON:
{
"companyName": "广州飞翔科技",
"website": "www.feixiang.net",
"establishedYear": 2018,
"isActive": true,
"ceo": null
}
逐行解析:
| 键 | 值 | 类型 |
|---|---|---|
companyName | "广州飞翔科技" | 字符串 |
website | "www.feixiang.net" | 字符串 |
establishedYear | 2018 | 数字 |
isActive | true | 布尔值 |
ceo | null | 空值 |
注意几个重要规则:
- 键(key)必须用双引号包裹,如
"companyName" - 键和值之间用冒号
:分隔 - 每个键值对之间用逗号
,分隔 - 最后一个键值对后面不能加逗号
- 整个对象用花括号
{}包裹
JSON 与 JavaScript 的关系
JSON 的语法借鉴自 JavaScript,但 JSON 不等于 JavaScript。
| 对比项 | JSON | JavaScript |
|---|---|---|
| 键名 | 必须用双引号 | 可以不加引号 |
| 字符串 | 必须用双引号 | 可以用单引号 |
| 末尾逗号 | 不允许 | 允许 |
| 注释 | 不支持 | 支持 // 和 /* */ |
| 函数 | 不支持 | 支持 |
提示
⚠️ 重要:JSON 只是一种数据格式,它不包含任何可执行的代码,因此比直接执行 JavaScript 更安全。
JSON 用在什么地方?
JSON 几乎无处不在:
- 网页与服务器通信:前端页面从后端 API 获取数据
- 配置文件:很多程序用
.json文件保存设置 - 数据库:如 MongoDB 直接存储 JSON 格式的文档
- 日志记录:结构化日志常用 JSON 格式
- 消息队列:系统之间传递消息的标准格式
实际场景示例
假设飞翔科技的官网要显示员工列表,服务器返回的数据就是 JSON:
{
"department": "技术部",
"members": [
{"name": "航仔", "position": "后端开发"},
{"name": "翼王", "position": "架构师"},
{"name": "空少", "position": "前端开发"}
]
}
前端网页拿到这段 JSON,就能解析出技术部有哪些人,然后展示在页面上。
本系列学习路线
接下来的文档,我们将逐个学习 JSON 的每一种数据类型和语法规则:
- ✅ JSON 是什么(本文)
- JSON 的六种数据类型总览
- 对象(Object)—— 花括号里的世界
- 数组(Array)—— 方括号里的列表
- 字符串(String)—— 双引号里的文字
- 数字(Number)—— 各种数值写法
- 布尔值和 Null —— 真、假、空
- 字符编码与转义 —— 中文和特殊符号
- JSON 语法规则 —— 常见错误排查
- 综合应用示例 —— 用飞翔科技数据实战
提示
📌 记住一句话:JSON 是不同系统之间交换数据的"通用语言",它简单、轻量、人人可读。