# JSON 格式化与校验工具

URL: https://byshahid.com/zh/tools/json-formatter/
Author: Muhammad Shahid (https://byshahid.com/)
免费工具 · 在浏览器中运行

粘贴 JSON，把它格式化为易读的缩进形式、压缩为一行，或准确找出错误所在。

**快速解答:** 粘贴 JSON 后选择格式化得到带缩进的易读输出，或选择压缩去除所有空白。如果 JSON 无效，工具会显示浏览器自带 JSON 解析器的错误信息，指出问题所在，例如末尾多余的逗号或缺少引号。

## 使用方法

1. **粘贴 JSON.** 来自 API 响应、配置文件或日志。
2. **格式化或压缩.** 格式化会添加缩进（2 个空格、4 个空格或 Tab）；压缩会把它放到一行。
3. **修复错误.** 如果无效，查看错误信息，修改对应位置后重试。

## 示例

把 API 返回的压缩 JSON 格式化为 2 个空格缩进：

输入:

```
{"id":42,"name":"Sara Levi","roles":["admin","editor"],"active":true}
```

输出:

```
{
  "id": 42,
  "name": "Sara Levi",
  "roles": [
    "admin",
    "editor"
  ],
  "active": true
}
```

## 常见错误及解决方法

- **Expected double-quoted property name in JSON at position …**: 通常是最后一项后面多了逗号，例如 {"a": 1,}。删掉结尾 } 或 ] 前面的逗号。
- **Expected property name or '}' in JSON at position 1**: 键没有用双引号：{a: 1} 或 {'a': 1}。JSON 的键和字符串都必须用双引号，例如 "a"。
- **Unexpected token '<', "<!DOCTYPE "… is not valid JSON**: 收到的是 HTML 页面而不是 JSON，通常是错误页、登录页或 URL 写错。调用 JSON.parse 之前先检查状态码和响应内容。
- **Unexpected end of JSON input**: 文本为空或被截断：缺少结尾括号，或响应体为空。确认完整的响应已经收到。

## 常见问题

### 最常见的 JSON 错误有哪些？

最后一项后面多了逗号、用单引号代替双引号、键没有加引号，以及包含注释（JSON 不允许注释）。

### 我的 JSON 会发送到服务器吗？

不会。格式化和校验都在浏览器中运行。

### 格式化和压缩有什么区别？

格式化添加换行和缩进，方便人阅读；压缩去掉它们，使数据尽可能小，便于传输。

### JSON 可以有注释吗？

不可以。标准 JSON 不允许注释；请删除注释，或在工具支持时使用 JSONC 等格式。

### 能格式化多大的 JSON？

几 MB 的文件在现代浏览器中都能正常处理；非常大的文件可能较慢，因为一切都在你的设备上运行。

### JSON 和 JavaScript 对象有什么区别？

JSON 是规则更严格的文本格式：键和字符串必须用双引号，不能有末尾逗号、注释、函数或 undefined。

### 如何在 JavaScript 中格式化 JSON？

JSON.stringify(value, null, 2) 会以两个空格缩进格式化，JSON.parse(text) 会把 JSON 读取为对象。

### 为什么我的 JSON 里有 \" 这样的转义引号？

很可能被编码了两次：JSON 里面套着一个 JSON 字符串。再解析一次就能得到对象。

### JSON 可以包含日期吗？

没有日期类型。日期通常存成 ISO 8601 字符串，例如 "2026-10-31T12:00:00Z"，或存成 Unix 时间戳。

### 什么是 JSON Lines？

每行一个 JSON 对象的格式，常用于日志和数据导出。请逐行分别格式化。

## 相关内容

- [Base64 编码解码工具](https://byshahid.com/zh/tools/base64-encoder-decoder/)
- [JWT 解码器](https://byshahid.com/zh/tools/jwt-decoder/)
- [将 Node.js API 从 20 万扩展到 100 万用户](https://byshahid.com/engineering/scaling-nodejs-api-200k-to-1m-users/)

## 来源

- [RFC 8259: JSON](https://www.rfc-editor.org/info/rfc8259)
