logo
GeekFormat

JSON 格式化

暂无内容

preview.json
就绪

免费在线 JSON 格式化工具,支持 JSON 美化、校验、压缩和 JSON 树可视化编辑。内置语法错误检测与自动修复,支持 13 种编程语言代码转换(TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML),适合接口调试、配置检查和日志阅读。

相关推荐

适用场景

  • API 接口返回的一行 JSON 需要美化成易读结构方便排查问题
  • 配置文件、日志字段需要格式化后再做进一步处理
  • 开发调试时快速校验 JSON 是否合法并压缩体积
  • 需要把 JSON 转成 TypeScript 接口、Java 类或 Python 字典等代码格式
  • 对比两份接口返回值时先按键名排序再逐字段核对差异
  • 梳理第三方 API 的复杂嵌套结构,用树视图或思维导图快速理解层级
  • 把压缩后的埋点日志、Webhook 数据展开阅读,定位异常字段
  • 将本地环境变量或配置里的紧凑 JSON 格式化后编辑,再压缩写回

功能特点

  • JSON 美化更直观:快速把一行数据整理成易读层级结构,可切换 2/4 空格或 Tab 缩进
  • 支持校验与压缩:实时检测语法错误并精确提示位置,一键压缩为最紧凑单行
  • 13 种编程语言代码转换:TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML 一键生成
  • JSON 树视图可视化编辑:折叠展开节点、直观查看和修改深层嵌套结构
  • 思维导图视图:以节点连线方式呈现对象/数组父子关系,适合梳理复杂结构
  • 键名排序:按字母升序/降序重排对象 key,方便对比差异与规范字段顺序
  • 大文件流畅处理:虚拟滚动 + Web Worker 后台解析,几 MB JSON 也不卡顿
  • 隐私安全:全程浏览器本地运行,数据零上传,处理含密钥的返回值也放心
  • 便捷操作:上传/下载文件、一键复制、历史记录回退、URL 分享一应俱全

使用方法

  1. 粘贴 JSON 内容或上传 JSON 文件
  2. 选择美化、压缩或校验模式,也可切换到树视图/思维导图进行可视化查看
  3. 查看格式化后的层级结构和错误提示,必要时切换到代码转换生成目标语言结构
  4. 复制处理后的内容、下载文件或生成分享链接

常见问题

怎么把一行 JSON 快速格式化成可读结构?

把 JSON 内容粘贴进来即可快速美化,适合查看接口返回值、配置文件和日志字段。工具会自动添加缩进和换行,将紧凑数据整理成清晰的层级结构。默认使用 2 个空格缩进,也可以在工具栏切换缩进大小。

JSON 格式化和 JSON 修复有什么区别?

JSON 格式化更适合处理本身合法但难读的内容,JSON 修复更适合处理报错、缺引号、尾逗号等不合法结构。如果格式化时提示错误,建议先做 JSON 修复。简单说:格式化只调整排版不改内容,修复会尝试补全缺失的引号、括号并删除多余逗号让其重新变成合法 JSON。

为什么格式化 JSON 时会提示错误?

通常是因为内容本身不是合法 JSON,比如多了注释、单引号、尾随逗号或括号未闭合。JSON 规范(RFC 8259)要求键名必须用双引号、字符串不能用单引号、最后一个元素后不能有逗号、不允许 // 或 /* */ 注释。这种情况更适合先做 JSON 修复,修复后再格式化。

适合接口调试和查看日志返回吗?

非常适合。API 返回值、Webhook 数据、埋点日志和配置片段都经常需要先格式化再排查。工具还支持 JSON 树视图可视化编辑、思维导图视图和 13 种编程语言代码转换,帮助你快速理解数据结构。

可以把 JSON 转成 TypeScript 接口或 Java 类吗?

可以。工具支持将 JSON 转换为 TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML 共 13 种格式,一键生成对应代码结构,非常适合根据接口返回值快速生成前后端数据模型。

格式化的 JSON 数据会上传到服务器吗?

不会。所有格式化、校验、压缩和代码转换都完全在浏览器本地运行,数据不会上传到任何服务器。即使处理包含密钥、Token 或用户隐私的接口返回值也很安全,关闭页面后数据即被清除。

能处理很大的 JSON 文件吗?

可以。工具采用虚拟滚动渲染和 Web Worker 后台解析,几 MB 的 JSON 也能流畅格式化和浏览,不会卡死页面。对于超大文件建议直接上传 JSON 文件而不是粘贴,性能更稳定。

JSON 压缩(Minify)有什么用?

压缩会删除 JSON 中所有多余的空格和换行,得到最紧凑的单行结果。这能显著减小体积、节省带宽和存储,常用于接口传输、写入配置、嵌入代码或作为环境变量。压缩后的 JSON 与格式化前语义完全一致,只是不便于人阅读。

什么是 JSON 树视图和思维导图视图?

树视图把 JSON 渲染成可折叠的层级树,支持展开/折叠节点、可视化编辑字段,适合浏览深层嵌套数据。思维导图视图则把结构以节点连线的方式呈现,直观展示对象与数组的父子关系,适合梳理复杂数据结构或做演示讲解。

格式化后可以按键名排序吗?

可以。工具提供键名排序功能,支持按字母升序或降序对对象的 key 重新排列,方便对比两份 JSON 的差异、规范配置文件字段顺序,或让接口字段以固定顺序展示便于 Code Review。

可以把格式化结果分享给同事吗?

可以。工具支持将当前 JSON 内容压缩编码进 URL,生成可分享链接。对方打开链接即可看到相同的数据,无需上传服务器,适合快速协作排查接口问题或复现数据场景。

关于 JSON 与 JSON 格式化

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 数据类型速查表

JSON 只有六种值类型,理解它们有助于快速判断数据是否合法以及如何映射到编程语言类型。

类型示例说明
string"hello"字符串,必须使用双引号,支持转义字符与 \uXXXX Unicode 编码。
number25 / 3.14 / -1e5数字,支持整数、小数和科学计数法,按双精度浮点解析,不区分整型和浮点型。
booleantrue / false布尔值,只能是小写的 true 或 false。
nullnull空值,表示无数据,必须小写,不同于空字符串或 0。
object{"k": "v"}对象,由花括号包裹的键值对集合,键必须是双引号字符串。
array[1, 2, 3]数组,由方括号包裹的有序值列表,元素类型可以不同。

JSON 字符串转义字符表

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

Code Examples

JavaScript:使用 JSON.stringify 格式化 JSON

javascript

浏览器和 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 模块格式化

python

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

bash

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 '.'

Privacy & Security

本工具所有 JSON 格式化、校验、压缩和代码转换都完全在你的浏览器本地运行,数据不会上传到任何服务器,也不会被记录或缓存到远端。即使处理包含密钥、Token、用户信息的接口返回值也很安全,关闭或刷新页面后数据即被清除。

Authoritative References

Troubleshooting

Unexpected token ... in JSON(意外的字符 / 语法错误)

多半是使用了单引号、键名没加双引号,或含有 // 、/* */ 注释。JSON 规范要求所有字符串和键名必须用双引号,且不支持注释。请改为双引号并删除注释,或先用 JSON 修复工具处理。

Unexpected end of JSON input(内容意外结束)

通常是括号 {} 或 [] 、引号未正确闭合,导致 JSON 不完整。请检查结构是否成对闭合。粘贴接口返回值时也可能只复制了部分内容,确认复制完整。

尾随逗号导致报错(Trailing comma)

JSON 不允许对象或数组最后一个元素后带逗号,例如 {"a":1,} 或 [1,2,] 都是非法的。删除多余逗号即可。JavaScript 对象允许尾逗号,但 JSON 不允许,从代码里复制时要特别注意。

中文或特殊字符显示为 \uXXXX

这是 JSON 的 Unicode 转义写法,本身是合法的,格式化后仍可正常解析。若希望直接显示中文,在生成端设置不转义(如 Python 的 ensure_ascii=False、Go 的关闭 HTML 转义)即可。

大数字精度丢失(如 ID 变成科学计数法或末位归零)

JSON 数字按 IEEE 754 双精度浮点解析,超过 2^53 的整数(如雪花 ID、订单号)会丢精度。解决办法是在传输时把大整数用字符串包裹,即 "id": "9007199254740993",避免被当作数字解析。

格式化后想还原成一行

直接切换到「压缩 / Minify」即可把美化后的多行 JSON 重新变回最紧凑的单行,用于接口传输、写入配置或嵌入代码。压缩与美化互为逆操作,不改变数据内容。