JSON 格式化
暂无内容
免费在线 JSON 格式化工具,支持 JSON 美化、校验、压缩和 JSON 树可视化编辑。内置语法错误检测与自动修复,支持 13 种编程语言代码转换(TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML),适合接口调试、配置检查和日志阅读。
暂无内容
免费在线 JSON 格式化工具,支持 JSON 美化、校验、压缩和 JSON 树可视化编辑。内置语法错误检测与自动修复,支持 13 种编程语言代码转换(TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML),适合接口调试、配置检查和日志阅读。
把 JSON 内容粘贴进来即可快速美化,适合查看接口返回值、配置文件和日志字段。工具会自动添加缩进和换行,将紧凑数据整理成清晰的层级结构。默认使用 2 个空格缩进,也可以在工具栏切换缩进大小。
JSON 格式化更适合处理本身合法但难读的内容,JSON 修复更适合处理报错、缺引号、尾逗号等不合法结构。如果格式化时提示错误,建议先做 JSON 修复。简单说:格式化只调整排版不改内容,修复会尝试补全缺失的引号、括号并删除多余逗号让其重新变成合法 JSON。
通常是因为内容本身不是合法 JSON,比如多了注释、单引号、尾随逗号或括号未闭合。JSON 规范(RFC 8259)要求键名必须用双引号、字符串不能用单引号、最后一个元素后不能有逗号、不允许 // 或 /* */ 注释。这种情况更适合先做 JSON 修复,修复后再格式化。
非常适合。API 返回值、Webhook 数据、埋点日志和配置片段都经常需要先格式化再排查。工具还支持 JSON 树视图可视化编辑、思维导图视图和 13 种编程语言代码转换,帮助你快速理解数据结构。
可以。工具支持将 JSON 转换为 TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML 共 13 种格式,一键生成对应代码结构,非常适合根据接口返回值快速生成前后端数据模型。
不会。所有格式化、校验、压缩和代码转换都完全在浏览器本地运行,数据不会上传到任何服务器。即使处理包含密钥、Token 或用户隐私的接口返回值也很安全,关闭页面后数据即被清除。
可以。工具采用虚拟滚动渲染和 Web Worker 后台解析,几 MB 的 JSON 也能流畅格式化和浏览,不会卡死页面。对于超大文件建议直接上传 JSON 文件而不是粘贴,性能更稳定。
压缩会删除 JSON 中所有多余的空格和换行,得到最紧凑的单行结果。这能显著减小体积、节省带宽和存储,常用于接口传输、写入配置、嵌入代码或作为环境变量。压缩后的 JSON 与格式化前语义完全一致,只是不便于人阅读。
树视图把 JSON 渲染成可折叠的层级树,支持展开/折叠节点、可视化编辑字段,适合浏览深层嵌套数据。思维导图视图则把结构以节点连线的方式呈现,直观展示对象与数组的父子关系,适合梳理复杂数据结构或做演示讲解。
可以。工具提供键名排序功能,支持按字母升序或降序对对象的 key 重新排列,方便对比两份 JSON 的差异、规范配置文件字段顺序,或让接口字段以固定顺序展示便于 Code Review。
可以。工具支持将当前 JSON 内容压缩编码进 URL,生成可分享链接。对方打开链接即可看到相同的数据,无需上传服务器,适合快速协作排查接口问题或复现数据场景。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用键值对和数组的结构来表示数据,因其简洁、易读、跨语言的特性,已成为 Web API、配置文件、日志和前后端数据传输的事实标准。JSON 只有六种基本值类型:字符串、数字、布尔值、null、对象和数组,语法规则由 RFC 8259 和 ECMA-404 两份标准共同定义。
JSON 格式化(也叫 JSON 美化、JSON Beautify)是指在不改变数据内容的前提下,为紧凑的 JSON 添加合理的缩进和换行,把它整理成带层级结构、方便人阅读的形式。接口返回值、日志和存储中的 JSON 往往是压缩成一行的,直接阅读非常困难,格式化后就能清晰看到对象嵌套、数组元素和每个字段的值。
与格式化相对的操作是 JSON 压缩(Minify),即删除所有非必要的空白字符,把 JSON 变回最紧凑的单行形式,用于减小传输体积。格式化和压缩是可逆的一对操作,二者都不会改变 JSON 的语义,只影响可读性和体积。
JSON 校验则是检查一段文本是否符合 JSON 语法规范。常见的非法写法包括:使用单引号而非双引号、键名没有加引号、最后一个元素后多了尾随逗号、包含 // 或 /* */ 注释、括号或引号未正确闭合等。这些都不是合法 JSON,格式化时会报错——此时应先用 JSON 修复工具处理,再进行格式化。
本工具在格式化的基础上还提供树视图、思维导图视图和 13 种编程语言的代码转换能力:你既可以把 JSON 折叠成可视化的层级树来浏览深层结构,也能一键把接口返回的 JSON 转换成 TypeScript 接口、Java 类、Python 字典或数据库建表语句,直接用于开发。所有处理都在浏览器本地完成,数据不会上传服务器。
JSON 只有六种值类型,理解它们有助于快速判断数据是否合法以及如何映射到编程语言类型。
| 类型 | 示例 | 说明 |
|---|---|---|
string | "hello" | 字符串,必须使用双引号,支持转义字符与 \uXXXX Unicode 编码。 |
number | 25 / 3.14 / -1e5 | 数字,支持整数、小数和科学计数法,按双精度浮点解析,不区分整型和浮点型。 |
boolean | true / false | 布尔值,只能是小写的 true 或 false。 |
null | null | 空值,表示无数据,必须小写,不同于空字符串或 0。 |
object | {"k": "v"} | 对象,由花括号包裹的键值对集合,键必须是双引号字符串。 |
array | [1, 2, 3] | 数组,由方括号包裹的有序值列表,元素类型可以不同。 |
JSON 字符串中的以下字符必须使用反斜杠转义,否则会导致解析失败。
| 转义 | 含义 |
|---|---|
\" | 双引号 |
\\ | 反斜杠 |
\/ | 正斜杠(可选转义) |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 Tab |
\b | 退格符 |
\f | 换页符 |
\uXXXX | 四位十六进制表示的 Unicode 字符 |
下面列出容易踩坑的非法 JSON 写法及其合法形式,格式化报错时可对照检查。
| 非法写法 | 合法写法 | 说明 |
|---|---|---|
{name: "a"} | {"name": "a"} | 键名必须用双引号 |
{'name': 'a'} | {"name": "a"} | 字符串必须用双引号,不能用单引号 |
{"a": 1,} | {"a": 1} | 不允许尾随逗号 |
{"a": 1} // 注释 | {"a": 1} | JSON 不支持注释 |
{"a": undefined} | {"a": null} | 没有 undefined,用 null 表示空值 |
{"a": .5} | {"a": 0.5} | 小数必须有整数位 0 |
浏览器和 Node.js 内置的 JSON.stringify 第三个参数可指定缩进,是最常用的编程方式格式化 JSON。
const data = { name: '张三', age: 25, tags: ['a', 'b'] };
// 美化:第三个参数为缩进空格数(也可传 '\t' 使用 Tab)
const pretty = JSON.stringify(data, null, 2);
console.log(pretty);
// 压缩:不传第三个参数即得到最紧凑单行
const mini = JSON.stringify(data);
console.log(mini); // {"name":"张三","age":25,"tags":["a","b"]}
// 解析字符串为对象(会校验语法,非法时抛出 SyntaxError)
const obj = JSON.parse(pretty);Python 标准库 json 通过 indent 和 ensure_ascii 参数控制缩进和中文显示。
import json
data = {"name": "张三", "age": 25, "tags": ["a", "b"]}
# 美化输出,indent 指定缩进,ensure_ascii=False 保留中文
pretty = json.dumps(data, indent=2, ensure_ascii=False)
print(pretty)
# 压缩输出:用最紧凑的分隔符
mini = json.dumps(data, separators=(",", ":"), ensure_ascii=False)
print(mini)
# 解析字符串(非法时抛出 json.JSONDecodeError)
obj = json.loads(pretty)jq 是命令行下处理 JSON 的利器,可快速美化、压缩和提取字段。
# 美化(默认 2 空格缩进) cat data.json | jq '.' # 压缩为单行 cat data.json | jq -c '.' # 提取指定字段 cat data.json | jq '.user.name' # curl 返回结果直接管道美化 curl -s https://api.example.com/user | jq '.'
本工具所有 JSON 格式化、校验、压缩和代码转换都完全在你的浏览器本地运行,数据不会上传到任何服务器,也不会被记录或缓存到远端。即使处理包含密钥、Token、用户信息的接口返回值也很安全,关闭或刷新页面后数据即被清除。
多半是使用了单引号、键名没加双引号,或含有 // 、/* */ 注释。JSON 规范要求所有字符串和键名必须用双引号,且不支持注释。请改为双引号并删除注释,或先用 JSON 修复工具处理。
通常是括号 {} 或 [] 、引号未正确闭合,导致 JSON 不完整。请检查结构是否成对闭合。粘贴接口返回值时也可能只复制了部分内容,确认复制完整。
JSON 不允许对象或数组最后一个元素后带逗号,例如 {"a":1,} 或 [1,2,] 都是非法的。删除多余逗号即可。JavaScript 对象允许尾逗号,但 JSON 不允许,从代码里复制时要特别注意。
这是 JSON 的 Unicode 转义写法,本身是合法的,格式化后仍可正常解析。若希望直接显示中文,在生成端设置不转义(如 Python 的 ensure_ascii=False、Go 的关闭 HTML 转义)即可。
JSON 数字按 IEEE 754 双精度浮点解析,超过 2^53 的整数(如雪花 ID、订单号)会丢精度。解决办法是在传输时把大整数用字符串包裹,即 "id": "9007199254740993",避免被当作数字解析。
直接切换到「压缩 / Minify」即可把美化后的多行 JSON 重新变回最紧凑的单行,用于接口传输、写入配置或嵌入代码。压缩与美化互为逆操作,不改变数据内容。