第 6 课
JSON 在 API 与配置中的应用
REST 载荷、配置文件,以及 JSON 与 XML、YAML 的对比。
在真实场景中理解 JSON,有助于合理选型并更高效地阅读文档。
REST API
HTTP API 常用 JSON 作为请求体,有时也用于 POST 的业务数据:
POST /users HTTP/1.1
Content-Type: application/json
{"name": "Ada", "role": "admin"}
响应通常也是 JSON。状态码在 HTTP 头中;JSON 承载业务数据。结构可能通过 OpenAPI、JSON Schema 或示例说明。
配置文件
package.json、tsconfig.json 及许多 CI 配置都使用 JSON。优点:
- 程序易于解析
- 编辑器支持广泛
- 格式化后在版本控制中便于 diff
代价:严格 JSON 不支持注释(部分工具接受 JSONC,但可移植配置仍建议标准 JSON)。
JSON 与 XML
| JSON | XML | |
|---|---|---|
| 冗长度 | 通常更短 | 标签往往更多 |
| 类型 | 较少(字符串、数字等) | 属性 + 文本节点 |
| 模式描述 | JSON Schema、OpenAPI | XSD、DTD |
| 当今常见用途 | Web API | 遗留企业系统、文档 |
JSON 与 YAML
YAML 更适合人工编写大型配置,且支持注释,Kubernetes、Docker Compose 中常见。注意:依赖缩进,大规模不可信输入下解析更需谨慎。JSON 更严格,适合不可信数据;YAML 常在人手维护的配置中选择。
安全提示
不要对 JSON 文本使用 eval()——应使用专用解析库。对不可信载荷应做 schema 校验并限制体积,以降低拒绝服务风险。
课程小结
你已掌握 JSON 的语法、类型、结构、常见错误与实际用途。阅读 API 文档、设计载荷或在 Pull Request 中审查配置变更时,可直接运用这些知识。