什么是 JSON?如何格式化 JSON
什么是 JSON?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于 JavaScript 语法,但独立于语言——几乎所有编程语言都支持 JSON 的解析和生成。
JSON 的核心优势在于可读性强、结构简单,目前已经成为 API 接口通信、配置文件存储的事实标准。
JSON 的基本结构
JSON 只有两种结构:
**键值对集合(对象)**:用花括号 `{}` 包裹,键是字符串,值可以是任意类型。
{"name": "Ken", "age": 30, "active": true}**有序值列表(数组)**:用方括号 `[]` 包裹,值可以是任意类型。
["apple", "banana", "cherry"]JSON 支持的数据类型
JSON 一共支持 6 种数据类型:
JSON 的语法限制比较严格:
常见错误
写 JSON 时最容易犯的几个错误:
1. 末尾逗号
{"a": 1, "b": 2,} // 错误
{"a": 1, "b": 2} // 正确2. 键没有用双引号
{name: "Ken"} // 错误
{"name": "Ken"} // 正确3. 使用单引号
{'name': 'Ken'} // 错误
{"name": "Ken"} // 正确4. 注释
JSON 不支持注释。如果你需要注释,可以考虑使用 YAML 或 JSONC(带注释的 JSON 变体)。
如何格式化 JSON
格式化 JSON 的核心目标就是让结构清晰可读。主要做两件事:
1. **缩进**:每层嵌套缩进 2 个空格(或 4 个)
2. **换行**:每个键值对单独一行
格式化前:
{"name":"Ken","scores":[98,87,92],"address":{"city":"Beijing","zip":"100000"}}格式化后:
{
"name": "Ken",
"scores": [
98,
87,
92
],
"address": {
"city": "Beijing",
"zip": "100000"
}
}绝大多数编程语言的标准库都提供了 JSON 格式化功能:
**JavaScript:**
const formatted = JSON.stringify(obj, null, 2)**Python:**
import json
formatted = json.dumps(obj, indent=2)**Go:**
import "encoding/json"
data, _ := json.MarshalIndent(obj, "", " ")JSON 的用途
JSON 最常见的几个使用场景:
API 数据交换
RESTful API 几乎全部使用 JSON 作为数据格式。前端向后端发请求、后端返回数据,基本都是 JSON。
配置文件
很多现代工具和框架使用 JSON 做配置,如 VS Code 的 `settings.json`、`package.json`、TypeScript 的 `tsconfig.json`。
数据存储
一些 NoSQL 数据库(如 MongoDB)直接使用 JSON-like 格式存储数据。
总结
JSON 简单、通用、跨语言,是开发者必须掌握的数据格式。理解它的语法规则和使用场景,能让你在日常开发中更高效地处理数据。配合格式化工具使用,可以显著提升调试体验。