JSON 是什么
这是什么:JSON(JavaScript Object Notation,JS 对象表示法)是一种轻量的数据格式——用纯文本把「有什么数据、数据长什么样」写清楚,让各种语言都能读懂同一份。
为什么用:浏览器说 JavaScript,服务器说 Python、Java……语言不通,数据怎么交换?得有一个大家都认识的「通用包装箱」。JSON 就是当下最流行的那个:比老前辈 XML 短小、好读、好写,前后端传数据十个有九个用它。
如何用:JSON 本身只是一段文本,不用安装任何东西。本章先认识它长什么样、用在哪,下一章学它的语法铁律。
先看一眼:JSON 长什么样
{
"name": "呱小吉",
"age": 3,
"skills": ["游泳", "捉虫"],
"graduate": false,
"master": null
}
「你会看到」:这就是一份完整的 JSON——大括号里一对对 "键": 值,方括号里装一串列表,谁是什么数据一目了然。
| 符号 | 名字 | 作用 |
|---|---|---|
{ } |
对象 | 描述「一个东西」的各项属性 |
[ ] |
数组 | 装一串同类的东西(列表) |
"键": 值 |
键值对 | 属性名和它的值,冒号分隔,逗号隔开下一对 |
为什么需要它:一门通用语
想象你点了一份外卖:商家(服务器)做好的数据,要经过骑手(网络)送到你家(浏览器)。如果商家用 Python 写数据、你家只会读 JavaScript,中间没有统一包装,谁都拆不开对方的箱子。
JSON 就是全行业约定好的包装标准:
服务器(Python)──打包成 JSON 文本──> 网络 ──> 浏览器(JS)拆包使用
- Python 的字典、JS 的对象、Java 的 Map 写法各不相同,但都能变成 JSON 文本,也都能从 JSON 文本变回来
- 它是纯文本,人能直接看懂,机器也能直接解析,调试时肉眼就能查错
JSON 用在哪
| 场景 | 例子 |
|---|---|
| 接口返回数据 | 请求用户信息,服务器回一段 JSON(学完本章去 AJAX 教程亲手请求一次) |
| 配置文件 | 各种工具的 config 几乎都是 JSON,比如 VS Code 的 settings.json |
| 本地存储 | 把待办清单存进浏览器 localStorage(第 3 章实战) |
| 大模型接口 | 调用 AI 的 API,请求和返回也都是 JSON |
JSON 和 JS 对象的关系
JSON 出生自 JS 对象写法,长得像但规矩更严:
// JS 对象:键可以不加引号,单引号也行
let frog = { name: '呱小吉', age: 3 }
// JSON:键必须双引号,值不许有函数、undefined、注释
{ "name": "呱小吉", "age": 3 }
记住定位:JS 对象是「活在程序里的数据」,JSON 是「写在文本里 transported 的数据」。程序里的对象要出门(发给服务器、存进文件),先变成 JSON 文本;进门前(拿到返回),再变回对象。怎么变?下一章的 JSON.parse() 和 JSON.stringify() 就是这两扇门。
记忆口诀:JSON 是文本,对象在内存;出门先打包,进门再拆封。
📝 本章小结
- JSON 是轻量的纯文本数据格式,前后端、不同语言之间传数据都认它
- 两大容器:
{}对象装属性,[]数组装列表;基本单位是"键": 值 - 常见场景:接口数据、配置文件、本地存储、AI 接口
- JSON 比 JS 对象规矩严:键必须双引号——细节下一章展开
动手改
- 打开前端在线运行场,把上面「长什么样」的 JSON 抄进去,改改你的名字和技能
- 打开浏览器 F12 → Network(网络)面板,随便刷一个常用网站,找一条请求看它的返回是不是 JSON
- 找到你电脑上任何一个
.json文件(比如 VS Code 设置),用记事本打开看看
下一章:JSON 语法,六种数据与两条铁律 🐸