JSON 教程
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于 API 接口、配置文件和数据存储。本教程介绍 JSON 的核心语法与常见用法,帮助你在编写、阅读与调试 JSON 时更有把握。
JSON 是什么?
JSON 基于 JavaScript 的对象字面量语法,但它是纯文本格式,与具体编程语言无关。几乎所有主流语言都内置了 JSON 的解析与生成能力。
它的设计目标是让人类可读、让机器易解析。一条合法的 JSON 文本,顶层只能是单个对象 {...} 或单个数组 [...],不能同时并列多个值。
基本语法规则
键名必须用双引号包裹,不能使用单引号。
字符串值也必须使用双引号;反斜杠 \ 用于转义特殊字符(如 "、\、\n)。
对象中键值对之间、数组元素之间用逗号分隔,最后一个元素后面不能有尾随逗号。
不支持注释(// 或 /* */),也不支持 undefined、NaN、Infinity 等 JavaScript 专有值。
数字可以是整数或浮点数,不允许前导零(如 007),也不允许十六进制写法。布尔值 true 和 false 必须小写。
六种数据类型
JSON 只支持以下六种类型:字符串(string)、数字(number)、布尔值(boolean)、null、对象(object)和数组(array)。下面是一个包含各类型的简单示例:
{
"name": "Alice",
"age": 30,
"active": true,
"score": null
}字符串与转义
字符串是最常用的类型,必须用双引号包裹。若内容包含换行、引号或反斜杠,需用 \ 转义。JSON 使用 UTF-8 编码,可直接写入中文及其他 Unicode 字符;保存为 .json 文件时建议使用 UTF-8(无 BOM)。
常见转义序列:\n(换行)、\t(制表符)、\\(反斜杠)、\"(双引号)、\uXXXX(Unicode 码点)。示例:
{
"message": "Hello\nWorld",
"quote": "He said \"Hi\"",
"path": "C:\\Users\\data",
"emoji": "你好 🎉",
"unicode": "\u0041"
}数字、布尔值与 null
数字支持整数、小数、负数及科学计数法(如 1.5e10)。布尔值只有 true 和 false。null 表示空值,与 undefined 不同——JSON 中没有 undefined。
示例:
{
"count": 42,
"price": 19.99,
"negative": -1,
"scientific": 1.5e10,
"flag": true,
"disabled": false,
"empty": null
}空数组、空对象与空字符串
[] 表示空数组,{} 表示空对象,"" 表示空字符串。API 响应中常见「无数据」用 null、空数组或空对象表示,含义略有不同,需结合业务理解。
{
"tags": [],
"meta": {},
"note": ""
}对象(Object)
对象由花括号 {} 包裹,内部是零个或多个「键: 值」对。键必须是字符串,值可以是任意 JSON 类型。对象常用于表示一条记录或配置项。
{
"user": {
"id": 1001,
"email": "alice@example.com"
}
}数组(Array)
数组由方括号 [] 包裹,元素按顺序排列,索引从 0 开始。元素可以是任意 JSON 类型,同一数组内也可以混用不同类型。
除了作为对象属性,数组本身也可以作为 JSON 的顶层结构,例如接口返回列表数据:
{
"tags": ["json", "tutorial", "web"],
"scores": [95, 88, 72]
}[
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" }
]嵌套结构
实际应用中,JSON 经常多层嵌套:对象里包含数组,数组里再包含对象。API 响应体、package.json、CI 配置等都是典型场景。
{
"project": "QyCreate JSON",
"version": 1,
"features": ["format", "validate", "minify"],
"settings": {
"indent": 2,
"theme": "light"
},
"contributors": [
{ "name": "Alice", "role": "author" },
{ "name": "Bob", "role": "reviewer" }
]
}JSON 与 JavaScript 的区别
JSON 是数据交换格式,不是可执行的 JavaScript 代码。虽然语法相似,但 JSON 更严格:键名必须加双引号,不允许注释、函数、Date 对象或 undefined。
在浏览器或 Node.js 中,通常用 JSON.parse() 将 JSON 字符串转为对象,用 JSON.stringify() 将对象序列化为 JSON 字符串。若需要注释或尾随逗号,那是 JSON5 等扩展格式,不属于标准 JSON。
常见错误与正确写法
新手最容易犯的错误包括:键名未加双引号、使用单引号、数组或对象末尾多了逗号、把 JavaScript 注释写进 JSON 文件。对比如下:
{
name: "Alice",
"items": [1, 2, 3,],
}{
"name": "Alice",
"items": [1, 2, 3]
}在本工具中实践
打开首页编辑器,将 JSON 粘贴进去,或上传不超过 4 MB 的 .json / .txt 文件。不确定格式是否正确?可点击「加载示例」快速体验。
点击「格式化」可美化缩进(2 空格),便于阅读;点击「压缩」可去除空白,得到最小体积的字符串。格式化后的缩进与高亮可更直观地阅读嵌套结构。
若 JSON 不合法,编辑器会标出错误行号与列号,并给出修改建议。编辑过程中支持撤销与重做,处理完成后可复制到剪贴板或下载为 .json 文件。
所有操作均在浏览器本地完成,数据不会上传到服务器,适合处理含 Token 或敏感信息的接口返回。