json 文件是后缀为 json 的纯文本数据文件,全称 JavaScript Object Notation,也就是 JavaScript 对象表示法,核心作用是跨程序跨平台存储和传输结构化数据,它本质就是纯文本,不是二进制文件,任何记事本都可以直接打开查看内容,现在前后端接口通信 配置文件 游戏存档 APP 本地缓存 接口返回数据,大量场景都在使用 json 文件,它的设计目标就是让人和程序都能读懂,语法非常简洁,支持对象 数组 字符串 数字 布尔值 null 这几种基础数据类型,相比 xml 体积更小解析速度更快,所以已经成为互联网领域最主流的数据交换格式,很多新手会误以为 json 是数据库,其实它只是文本格式的数据容器,本身没有查询索引能力,只是用来保存结构化信息,程序读取 json 文件之后,再把文本转换成对应编程语言里面的对象,就可以读取里面的数据,写完之后还可以把程序对象再序列化成 json 文本保存成 json 文件。
核心基础信息
| 项目 | 内容 |
|---|---|
| 全称 | JavaScript Object Notation |
| 文件后缀 | .json |
| 文件类型 | 纯文本结构化数据文件 |
| 设计特点 | 轻量 易读 跨语言兼容 |
| 支持数据类型 | 对象 数组 字符串 数字 布尔值 null |
主要应用场景
| 场景 | 用途说明 |
|---|---|
| 前后端接口交互 | 后端接口返回 json 数据,前端读取渲染页面 |
| 软件配置文件 | 程序启动读取 json 里面的参数设置 |
| 本地数据存档 | 软件游戏保存用户设置进度信息 |
| 跨系统数据对接 | 不同系统之间交换业务数据 |
| API 文档测试 | 接口测试工具保存请求响应样例 |
基础语法规则
第一 大括号代表对象,键值对使用冒号分隔,多个键值对之间用逗号隔开。
第二 中括号代表数组,可以存放多个元素。
第三 键名必须使用双引号,不能单引号,这个是 json 硬性语法要求,和原生 JS 对象写法有区别。
第四 字符串必须双引号包裹,不支持注释,标准 json 不能写单行或者多行注释,这点很多初学者容易踩坑。
第五 不支持函数 日期原生类型,日期一般写成字符串格式保存。
读写 json 文件操作步骤
第一步 准备文本编辑器,比如记事本 VSCode,新建空白文件,后缀命名为 xxx.json。
第二步 按照 json 语法写入结构化数据,注意逗号引号不能写错,语法错误会导致解析失败。
第三步 程序端执行解析操作,也就是反序列化,把 json 文本转换成编程语言里面的对象。
第四步 业务代码读取对象里面的字段,完成业务逻辑处理。
第五步 修改数据之后,执行序列化,把对象重新转成 json 文本,覆盖保存回 json 文件。
json 和 xml 对比
| 对比项 | json | xml |
|---|---|---|
| 体积 | 更小 | 标签冗余体积更大 |
| 解析速度 | 快 | 相对慢 |
| 可读性 | 简洁直观 | 标签层级繁琐 |
| 跨语言 | 全部主流语言支持 | 全部主流语言支持 |
| 适用倾向 | 互联网接口轻量数据 | 复杂文档结构化标记 |
常见错误说明
第一 末尾多余逗号,json 标准不允许最后一个键值对后面再加逗号,解析器会直接报错。
第二 使用单引号包裹键或者字符串,不符合标准 json 规范。
第三 在 json 里面添加注释,标准 json 不支持注释,如果需要注释一般改用 jsonc 扩展格式。
第四 文件编码不统一,中文内容如果编码错误,打开 json 文件会出现乱码,推荐统一使用 utf8 编码。
综合来说 json 文件就是标准化纯文本结构化数据载体,主打跨程序数据交换和配置存储,语法简单体积小,是现在 Web 开发最常用的数据文件格式,使用的时候重点注意严格遵守 json 语法规范,避免解析报错。
【常见问题】
问题 1 json 文件是数据库吗
回答 1 json 文件不是数据库,json 文件只是纯文本结构化数据文件,本身不具备数据库的索引查询事务能力,只是用来存储交换数据。
问题 2 json 文件可以直接用记事本打开吗
回答 1 json 文件属于纯文本文件,json 文件可以直接使用记事本打开查看和编辑内容,但是编辑之后要保证 json 语法正确。
问题 3 json 文件里面可以写注释吗
回答 1 标准 json 文件不支持注释,如果在 json 文件里面添加注释,大部分标准解析器会报错,带注释的版本属于 jsonc 扩展格式。
【免责申明】
本文基于 JSON 官方规范与开发通用知识整理,仅作为编程学习科普参考,不同编程语言解析 json 文件的 API 存在差异,不构成生产项目强制开发规范。


