JSON 格式化 / 验证工具
免费在线 JSON 格式化与验证工具。支持交互式树形视图:折叠/展开节点、删除对象键或数组项、语法高亮、错误精确定位,所有处理在浏览器本地完成,数据不上传。
缩进
输入
输出
输出将显示在这里。
这个工具有帮到你吗?
什么是 JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于 JavaScript 的一个子集。它易于人阅读和编写,也易于机器解析和生成。JSON 已成为现代 Web API 的事实标准,被 RESTful 服务、配置文件、数据存储等领域广泛采用。常见的 JSON 数据类型包括字符串、数字、布尔值、null、数组和对象。
什么时候需要格式化 JSON
当你从 API 返回的数据是一整行压缩过的字符串时,人类几乎无法阅读。格式化 JSON 可以添加缩进和换行,让数据结构一目了然。在调试 API 接口、查看日志文件、审查配置文件、或进行数据迁移时,JSON 格式化工具都是开发者必备的日常工具。此外,格式化后的 JSON 更容易发现语法错误,比如缺少逗号、引号不匹配等问题。
在线 JSON 工具 vs 编辑器插件
VS Code、Sublime Text 等编辑器都有 JSON 格式化插件,适合在编码时使用。但在快速调试、跨设备工作、或分享给非技术人员查看时,在线 JSON 格式化工具更加方便 — 无需安装,打开浏览器即可使用。本工具支持交互式树形视图,可以折叠/展开节点、删除键值,比纯文本编辑器更直观。
各语言处理 JSON
JavaScript
// Parse JSON string
const obj = JSON.parse('{"name":"Alice","age":30}');
// Format with 2-space indent
const pretty = JSON.stringify(obj, null, 2);
// Minify
const mini = JSON.stringify(obj);Python
import json
# Parse
obj = json.loads('{"name": "Alice", "age": 30}')
# Format
pretty = json.dumps(obj, indent=2, ensure_ascii=False)
# Minify
mini = json.dumps(obj, separators=(',', ':'))Go
import ( "encoding/json" "bytes" ) // Format var buf bytes.Buffer json.Indent(&buf, raw, "", " ") // Minify var mini bytes.Buffer json.Compact(&mini, raw)
Rust
use serde_json::Value; // Parse and format let v: Value = serde_json::from_str(raw)?; let pretty = serde_json::to_string_pretty(&v)?; // Minify let mini = serde_json::to_string(&v)?;
常见问题
- 什么是 JSON?
- JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,也易于机器解析和生成。它基于 JavaScript 语言标准,但独立于语言,广泛用于 API 接口、配置文件和数据存储。
- 为什么 JSON 格式化后更易读?
- 原始 JSON 数据通常是紧凑的单行格式,省略了空格和换行,便于传输但难以阅读。格式化(美化)后会添加缩进和换行,使层次结构一目了然,方便开发者调试和审查数据。
- 如何验证 JSON 是否合法?
- 合法的 JSON 必须满足:字符串用双引号括起、键名为字符串类型、数组和对象的括号必须匹配、不允许尾随逗号、不支持注释。本工具会实时解析并显示详细错误信息。
- JSON 和 JavaScript 对象有什么区别?
- JSON 是纯文本格式,键名必须用双引号,不支持函数、undefined、注释或尾随逗号。JavaScript 对象是内存中的数据结构,键名可以不加引号,支持函数值和 Symbol 类型。
- 为什么压缩 JSON?
- 压缩(Minify)JSON 会移除所有不必要的空格、换行和缩进,大幅减小文件体积,加快网络传输速度。通常在生产环境 API 响应和配置文件部署时使用。
- 树形视图如何使用?可以编辑 JSON 吗?
- 格式化后,输出区域以交互式树形视图显示 JSON 结构。点击节点左侧的箭头可折叠/展开对象或数组;将鼠标悬停在任意行上,右侧出现 × 按钮,点击即可删除该键值对或数组项。删除操作只影响输出,不修改原始输入,可随时重新粘贴。