JSON 教程

从零开始学习 JSON,掌握数据交换的核心技能。简单易懂,配有丰富示例。

什么是 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 校验工具 验证格式正确性,避免运行时错误。