JSON 全称 JavaScript Object Notation,中文叫 JavaScript 对象表示法,它最主要用途就是前后端之间的数据交换,同时也广泛用于不同编程语言不同系统之间跨平台数据交换,它是轻量级文本格式,可读性好,几乎所有主流编程语言都自带解析 JSON 的库,相比 XML 体积更小解析速度更快,所以现在 Web 接口 API 绝大多数默认使用 JSON 作为数据传输格式,客户端比如网页 APP 小程序发送请求,服务端返回业务数据,都是把数据序列化成 JSON 字符串传输,接收端再反序列化成对应语言的对象,除了 Web 接口之外,配置文件 微服务通信 跨语言数据传递也经常使用 JSON,核心优势就是跨语言通用,不绑定某一种编程语言。
主要应用场景清单
1 前后端 API 接口通信 这是最核心场景,RESTful 接口绝大多数返回 JSON,前端 JS axios fetch 拿到 JSON 之后渲染页面
2 跨编程语言数据交换 Java Python Go PHP NodeJS 互相传数据,JSON 作为中间通用文本格式,解决不同语言对象结构不能直接互通的问题
3 微服务之间通信 微服务架构里面服务和服务调用,很多接口选择 JSON 格式传输业务数据
4 移动端 APP 和服务器通信 安卓 iOS APP 请求后端接口,请求体和响应体大量使用 JSON
5 配置文件 项目配置 小程序配置 工具配置,很多配置文件采用 JSON 格式
6 小程序 H5 跨端应用数据交互 微信小程序等跨端框架和后端通讯默认 JSON
JSON 核心特点
1 纯文本,人类可以直接阅读修改
2 结构由键值对 数组组成,支持字符串 数字 布尔 null 对象 数组这几种基础类型
3 独立于编程语言,虽然名字带 JavaScript,但是不局限 JS,其他语言都可以解析生成
4 体积比 XML 更小,不需要大量闭合标签,网络传输占用带宽更少
场景对比表格
| 应用场景 | 传输双方 | 使用原因 |
|---|---|---|
| Web 前后端 | 浏览器前端 后端服务器 | 浏览器原生支持 JSON 解析,轻量高效 |
| APP 接口 | 手机客户端 后端服务 | 跨平台通用,解析库成熟 |
| 微服务 | 服务 A 服务 B | 跨语言通用,接口标准化 |
| 跨语言对接 | 不同语言写的系统 | 消除语言数据结构差异 |
容易混淆知识点
1 JSON 本身只是文本格式,不是对象,JS 里面 JSON.parse 才会把 JSON 字符串转成 JS 对象,JSON.stringify 把对象转成 JSON 字符串
2 它不是只能给 JS 使用,很多新手看到名字误以为只能 JavaScript 使用,这个是高频考点
3 早期 Web 接口曾经大量使用 XML,现在 JSON 已经成为主流,但是 XML 仍然在部分特殊行业保留使用
综合来看 JSON 最核心就是用于前后端 API 的数据交换,同时扩展到跨语言跨系统微服务的数据传递,凭借轻量跨语言的优势成为互联网开发最通用的数据交换标准格式。
【常见问题】
问题 1 json 多用于什么的数据交换是不是只能在 JavaScript 里面使用
回答 1 json 多用于跨语言的数据交换,虽然名称带有 JavaScript,但是并不是只能在 JavaScript 里面使用,Java Python Go 等所有主流语言都支持 JSON 解析生成
问题 2 json 多用于什么的数据交换和 XML 对比优势是什么
回答 1 json 多用于前后端跨系统数据交换,对比 XML 优势是文本体积更小结构简洁解析更快,所以现在 WebAPI 主流选择 JSON
问题 3 json 多用于什么的数据交换微服务里面也会用到吗
回答 1 json 多用于跨系统的数据交换,微服务服务之间调用同样经常使用 JSON 作为传输格式,适合不同技术栈服务之间互通数据
【免责申明】
本内容基于 Web 开发通用知识整理,部分特殊行业协议仍会选用 XML Protobuf 等其他格式,JSON 只是主流方案,不代表所有场景强制使用。


