什么是 JSON?
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 JavaScript 语法,但独立于语言,几乎所有编程语言都支持 JSON 的解析和生成。
💡 提示:
JSON 是现代 Web 开发中最常用的数据格式,API 接口、配置文件、数据存储都能看到它的身影。
为什么使用 JSON?
- 简洁易读 - 人类可读的数据格式
- 跨语言支持 - JavaScript、Python、Java、Go 等都原生支持
- 体积小 - 相较于 XML,JSON 更加紧凑
- 易于解析 - 内置类型系统,直接映射到编程语言对象
JSON 语法规则
JSON 的语法非常简单,只有几种基本数据类型和数据结构。
1. 对象 (Object)
用大括号 {} 包裹的键值对集合。
{
"name": "BeJSON",
"version": "1.0.0",
"isFree": true
}
2. 数组 (Array)
用中括号 [] 包裹的有序值列表。
{
"tools": ["格式化", "校验", "转换"],
"versions": [1, 2, 3]
}
3. 基本数据类型
- 字符串 - 必须用双引号包裹:"Hello"
- 数字 - 整数或浮点数:10, 3.14
- 布尔值 - true / false
- 空值 - null
⚠️ 注意:
JSON 中键名必须使用双引号,单引号无效。末尾不能有逗号。
JSON Schema
JSON Schema 是用于描述 JSON 数据结构的规范,可以校验 JSON 是否符合预期格式。
基本结构
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 0
}
},
"required": ["name"]
}
常用关键字
- type - 数据类型:string, number, integer, boolean, object, array, null
- properties - 定义对象属性
- required - 必需字段数组
- minimum / maximum - 数值范围限制
- minLength / maxLength - 字符串长度限制
- enum - 枚举值限制
- pattern - 正则表达式匹配
最佳实践
1. 使用有意义的键名
// ✅ 好的命名
{ "userName": "Tom", "createdAt": "2024-01-01" }
// ❌ 避免
{ "a": "Tom", "c": "2024-01-01" }
2. 保持结构一致性
// ✅ 数组元素类型一致
{ "users": [{"name": "Tom"}, {"name": "Jerry"}] }
// ❌ 避免混合类型
{ "items": ["a", 1, {"x": 1}] }
3. 合理使用嵌套
// ✅ 适当的嵌套层次
{
"user": {
"profile": { "name": "Tom" },
"settings": { "theme": "dark" }
}
}
4. 使用 JSON 工具验证
在发送或解析 JSON 数据前,使用 JSON 校验工具 验证格式正确性,避免运行时错误。